//----------------------------------------------------------------------------- // Changes presentation parameters for windowed or fullscreen //----------------------------------------------------------------------------- void SJ_ToggleFullScreen( ) { g_fullScreen = ! g_fullScreen; ZeroMemory( &g_d3dpp, sizeof( g_d3dpp ) ); g_d3dpp.Windowed = !g_fullScreen; g_d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; g_d3dpp.BackBufferFormat = D3DFMT_UNKNOWN; g_d3dpp.EnableAutoDepthStencil = TRUE; g_d3dpp.AutoDepthStencilFormat = D3DFMT_D16; GetClientRect( g_hWnd, &g_clRect ); if ( g_fullScreen ) { g_d3dpp.BackBufferFormat = D3DFMT_X8R8G8B8; g_d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE; g_d3dpp.FullScreen_RefreshRateInHz = 0; g_d3dpp.BackBufferWidth = SCREEN_WIDTH; g_d3dpp.BackBufferHeight = SCREEN_HEIGHT; g_clRect.right = SCREEN_WIDTH; g_clRect.bottom = SCREEN_HEIGHT; SetCursor( NULL ); } ShowCursor( BOOL(!g_fullScreen) ); if ( g_pd3dDevice != NULL ) g_pd3dDevice->ShowCursor( BOOL(!g_fullScreen) ); }
BOOL vmsTpDownloadMgr::CheckDstFileExists() { if (DWORD (-1) != GetFileAttributes (m_info.strOutputPath + m_info.strFileName)) { fsAlreadyExistReaction enAER = m_enAER; BOOL bRet = ApplyAER (enAER); if (bRet == FALSE) { RaiseEvent (DE_EXTERROR, DMEE_FATALERROR); return FALSE; } else if (bRet == BOOL (-1)) return FALSE; else if (bRet == BOOL (2)) SetToRestartState (); RaiseEvent (LS (L_OPENINGFILE)); m_dldr->InitTpStream(m_info.strTorrentUrl, m_info.strOutputPath + m_info.strFileName, GetStreamingSpeed ()); RaiseEvent (LS (L_SUCCESS), EDT_RESPONSE_S); } return TRUE; }
static GtkWidget * icon_list_new (GladeXML *xml, GType widget_type, GladeWidgetInfo *info) { GtkWidget *gil; int flags = 0; int icon_width = 0; int i; for (i = 0; i < info->n_properties; i++) { const char *name = info->properties[i].name; const char *value = info->properties[i].value; if (!strcmp (name, "text_editable")) { if (BOOL (value)) flags |= MATE_ICON_LIST_IS_EDITABLE; } else if (!strcmp (name, "text_static")) { if (BOOL (value)) flags |= MATE_ICON_LIST_STATIC_TEXT; } else if (!strcmp (name, "icon_width")) { icon_width = INT (value); } } gil = glade_standard_build_widget (xml, widget_type, info); mate_icon_list_construct (MATE_ICON_LIST (gil), icon_width, NULL, flags); return gil; }
static void s_TEST_WinSystemDll(void) { #if defined NCBI_OS_MSWIN CDll dll_user32("USER32", CDll::eLoadLater); CDll dll_userenv("userenv.dll", CDll::eLoadNow, CDll::eAutoUnload); // Load DLL dll_user32.Load(); // DLL functions definition BOOL (STDMETHODCALLTYPE FAR * dllMessageBeep) (UINT type) = NULL; BOOL (STDMETHODCALLTYPE FAR * dllGetProfilesDirectory) (LPTSTR lpProfilesDir, LPDWORD lpcchSize) = NULL; // This is other variant of functions definition // // typedef BOOL (STDMETHODCALLTYPE FAR * LPFNMESSAGEBEEP) ( // UINT uType // ); // LPFNMESSAGEBEEP dllMessageBeep = NULL; // // typedef BOOL (STDMETHODCALLTYPE FAR * LPFNGETPROFILESDIR) ( // LPTSTR lpProfilesDir, // LPDWORD lpcchSize // ); // LPFNGETUSERPROFILESDIR dllGetProfilesDirectory = NULL; dllMessageBeep = dll_user32.GetEntryPoint_Func("MessageBeep", &dllMessageBeep ); if ( !dllMessageBeep ) { ERR_FATAL("Error get address of function MessageBeep()."); } // Call loaded function dllMessageBeep(-1); #ifdef UNICODE dll_userenv.GetEntryPoint_Func("GetProfilesDirectoryW", &dllGetProfilesDirectory); #else dll_userenv.GetEntryPoint_Func("GetProfilesDirectoryA", &dllGetProfilesDirectory); #endif if ( !dllGetProfilesDirectory ) { ERR_FATAL("Error get address of function GetUserProfileDirectory()."); } // Call loaded function TCHAR szProfilePath[1024]; DWORD cchPath = 1024; if ( dllGetProfilesDirectory(szProfilePath, &cchPath) ) { cout << "Profile dir: " << szProfilePath << endl; } else { ERR_FATAL("GetProfilesDirectory() failed"); } // Unload USER32.DLL (our work copy) dll_user32.Unload(); // USERENV.DLL will be unloaded in the destructor // dll_userenv.Unload(); #endif }
static void test_cryptTls(void) { DWORD (WINAPI *pI_CryptAllocTls)(void); LPVOID (WINAPI *pI_CryptDetachTls)(DWORD dwTlsIndex); LPVOID (WINAPI *pI_CryptGetTls)(DWORD dwTlsIndex); BOOL (WINAPI *pI_CryptSetTls)(DWORD dwTlsIndex, LPVOID lpTlsValue); BOOL (WINAPI *pI_CryptFreeTls)(DWORD dwTlsIndex, DWORD unknown); DWORD index; BOOL ret; pI_CryptAllocTls = (void *)GetProcAddress(hCrypt, "I_CryptAllocTls"); pI_CryptDetachTls = (void *)GetProcAddress(hCrypt, "I_CryptDetachTls"); pI_CryptGetTls = (void *)GetProcAddress(hCrypt, "I_CryptGetTls"); pI_CryptSetTls = (void *)GetProcAddress(hCrypt, "I_CryptSetTls"); pI_CryptFreeTls = (void *)GetProcAddress(hCrypt, "I_CryptFreeTls"); /* One normal pass */ index = pI_CryptAllocTls(); ok(index, "I_CryptAllocTls failed: %08x\n", GetLastError()); if (index) { LPVOID ptr; ptr = pI_CryptGetTls(index); ok(!ptr, "Expected NULL\n"); ret = pI_CryptSetTls(index, (LPVOID)0xdeadbeef); ok(ret, "I_CryptSetTls failed: %08x\n", GetLastError()); ptr = pI_CryptGetTls(index); ok(ptr == (LPVOID)0xdeadbeef, "Expected 0xdeadbeef, got %p\n", ptr); /* This crashes ret = pI_CryptFreeTls(index, 1); */ ret = pI_CryptFreeTls(index, 0); ok(ret, "I_CryptFreeTls failed: %08x\n", GetLastError()); ret = pI_CryptFreeTls(index, 0); ok(!ret, "I_CryptFreeTls succeeded\n"); ok(GetLastError() == E_INVALIDARG, "Expected E_INVALIDARG, got %08x\n", GetLastError()); } /* Similar pass, check I_CryptDetachTls */ index = pI_CryptAllocTls(); ok(index, "I_CryptAllocTls failed: %08x\n", GetLastError()); if (index) { LPVOID ptr; ptr = pI_CryptGetTls(index); ok(!ptr, "Expected NULL\n"); ret = pI_CryptSetTls(index, (LPVOID)0xdeadbeef); ok(ret, "I_CryptSetTls failed: %08x\n", GetLastError()); ptr = pI_CryptGetTls(index); ok(ptr == (LPVOID)0xdeadbeef, "Expected 0xdeadbeef, got %p\n", ptr); ptr = pI_CryptDetachTls(index); ok(ptr == (LPVOID)0xdeadbeef, "Expected 0xdeadbeef, got %p\n", ptr); ptr = pI_CryptGetTls(index); ok(!ptr, "Expected NULL\n"); } }
static VALUE sdl_getMouseState(VALUE mod) { int x,y; Uint8 result; result=SDL_GetMouseState(&x,&y); return rb_ary_new3(5,INT2FIX(x),INT2FIX(y),BOOL(result&SDL_BUTTON_LMASK), BOOL(result&SDL_BUTTON_MMASK), BOOL(result&SDL_BUTTON_RMASK)); }
void dx10StateManager::SetMultisample(u32 Enable) { ValidateRDesc(); if (m_RDesc.MultisampleEnable!=BOOL(Enable)) { m_bRSChanged = true; m_RDesc.MultisampleEnable=BOOL(Enable); } }
static void setInfoToSMPEGInfo(VALUE obj,SMPEG_Info info) { rb_iv_set(obj,"@has_audio",BOOL(info.has_audio)); rb_iv_set(obj,"@has_video",BOOL(info.has_video)); rb_iv_set(obj,"@width",INT2NUM(info.width)); rb_iv_set(obj,"@height",INT2NUM(info.height)); rb_iv_set(obj,"@current_frame",INT2NUM(info.current_frame)); rb_iv_set(obj,"@current_fps",INT2NUM(info.current_fps)); rb_iv_set(obj,"@audio_string",rb_str_new2(info.audio_string)); rb_iv_set(obj,"@audio_current_frame",INT2NUM(info.audio_current_frame)); rb_iv_set(obj,"@current_offset",UINT2NUM(info.current_offset)); rb_iv_set(obj,"@total_size",UINT2NUM(info.total_size)); rb_iv_set(obj,"@current_time",UINT2NUM(info.current_time)); rb_iv_set(obj,"@total_time",UINT2NUM(info.total_time)); }
bool CI8DeskSvr::StartRemoteControl() { stdex::tString strFilePath = utility::GetAppPath() + _T("WinVNC\\"); SetDllDirectory(strFilePath.c_str()); strFilePath += TEXT("WinVNC.dll"); m_hRemoteCtrl = LoadLibrary(strFilePath.c_str()); if (m_hRemoteCtrl == NULL) return false; typedef BOOL (WINAPI* PFNSTARTVNC)(); PFNSTARTVNC pfnStartVNC = GetProcAddress(m_hRemoteCtrl, "_StartVNC@0"); if (pfnStartVNC == NULL) return false; try { pfnStartVNC(); } catch(...) { m_pLogger->WriteLog(LM_INFO, TEXT("加载远程控制客户端失败。\r\n")); BOOL (WINAPI* pfnStopVNC)(); pfnStopVNC = GetProcAddress(m_hRemoteCtrl, "_StopVNC@0"); if (pfnStopVNC == NULL) return false; pfnStopVNC(); } m_pLogger->WriteLog(LM_INFO, TEXT("加载远程控制客户端成功。\r\n")); return true; }
S32 LLXfer_File::startDownload() { S32 retval = 0; // presume success mFp = LLFile::fopen(mTempFilename,"w+b"); /* Flawfinder : ignore */ if (mFp) { fclose(mFp); mFp = NULL; gMessageSystem->newMessageFast(_PREHASH_RequestXfer); gMessageSystem->nextBlockFast(_PREHASH_XferID); gMessageSystem->addU64Fast(_PREHASH_ID, mID); gMessageSystem->addStringFast(_PREHASH_Filename, mRemoteFilename); gMessageSystem->addU8("FilePath", (U8) mRemotePath); gMessageSystem->addBOOL("DeleteOnCompletion", mDeleteRemoteOnCompletion); gMessageSystem->addBOOL("UseBigPackets", BOOL(mChunkSize == LL_XFER_LARGE_PAYLOAD)); gMessageSystem->addUUIDFast(_PREHASH_VFileID, LLUUID::null); gMessageSystem->addS16Fast(_PREHASH_VFileType, -1); gMessageSystem->sendReliable(mRemoteHost); mStatus = e_LL_XFER_IN_PROGRESS; } else { LL_WARNS() << "Couldn't create file to be received!" << LL_ENDL; retval = -1; } return (retval); }
// static void LLKeyTool::onTransferInfo(LLMessageSystem *msg, void **user_data) { S32 params_size = msg->getSize(_PREHASH_TransferInfo, _PREHASH_Params); if(params_size < 1) return; U8 tmp[1024]; msg->getBinaryDataFast(_PREHASH_TransferInfo, _PREHASH_Params, tmp, params_size); LLDataPackerBinaryBuffer dpb(tmp, 1024); LLUUID asset_id; dpb.unpackUUID(asset_id, "AssetID"); S32 asset_type; dpb.unpackS32(asset_type, "AssetType"); S32 status; msg->getS32Fast(_PREHASH_TransferInfo, _PREHASH_Status, status, 0); BOOL wanted = callback(asset_id, KT_ASSET, (LLAssetType::EType)asset_type, BOOL(status == 0)); // LLTS_OK (e_status_codes) if(wanted) { LLKeyTool::sTransferRequests--; if(LLKeyTool::sTransferRequests <= 0) { LLKeyTool::sTransferRequests = 0; gMessageSystem->delHandlerFuncFast(_PREHASH_TransferInfo, &onTransferInfo); } } }
SetAlpha(LONG nTrans) { HMODULE hDllUser32 = LoadLibrary("user32"); if (hDllUser32) { BOOL (WINAPI *pfnSetLayeredWindowAttributes)(HWND,DWORD,BYTE,DWORD); pfnSetLayeredWindowAttributes = (BOOL (WINAPI *)(HWND,DWORD,BYTE,DWORD)) GetProcAddress(hDllUser32, "SetLayeredWindowAttributes"); if (pfnSetLayeredWindowAttributes) { HWND hTop = GetVimWindow(); if (hTop) { if (nTrans == 255) { SetWindowLong(hTop, GWL_EXSTYLE, GetWindowLong(hTop, GWL_EXSTYLE) & ~WS_EX_LAYERED); } else { SetWindowLong(hTop, GWL_EXSTYLE, GetWindowLong(hTop, GWL_EXSTYLE) | WS_EX_LAYERED); pfnSetLayeredWindowAttributes(hTop, 0, (BYTE)nTrans, LWA_ALPHA); } } } FreeLibrary(hDllUser32); } return GetLastError(); }
CAygshellHelper::CAygshellHelper( void ) { if( m_hAygshellDLL = LoadLibrary( L"aygshell.dll" ) ) { BOOL (*SHInitExtraControls)() = NULL; SHInitExtraControls = (BOOL (*)())GetProcAddress( m_hAygshellDLL, L"SHInitExtraControls" ); SHInitDialog = (LPSHINITDIALOG)GetProcAddress( m_hAygshellDLL, L"SHInitDialog" ); SHInputDialog = (LPSHINPUTDIALOG)GetProcAddress( m_hAygshellDLL, L"SHInputDialog" ); SHSipInfo = (LPSHSIPINFO)GetProcAddress( m_hAygshellDLL, L"SHSipInfo" ); // SHHandleWMSettingChange isn't exported by name, so reference its ordinal. // OEMs shouldn't have to do this since they won't conditionally include aygshell. SHHandleWMSettingChange = (LPSHHANDLEWMSETTINGCHANGE)GetProcAddress( m_hAygshellDLL, (LPWSTR)MAKELONG(83, 0) ); if( !(SHInitDialog && SHInputDialog && SHInitExtraControls && SHSipInfo && SHHandleWMSettingChange) ) { FreeLibrary( m_hAygshellDLL ); m_hAygshellDLL = NULL; } else { SHInitExtraControls(); } } }
int list_tasks_worker(worker_t * worker, GError ** error) { struct bulk_s { char id[MAX_TASKID_LENGTH]; gint64 period; guint8 busy; // used to compute the length of the structure without padding, with // the help of offsetof(). gchar last[]; } bulk; GHashTableIter iter; gpointer k, v; GByteArray *gba = g_byte_array_new(); g_hash_table_iter_init(&iter, tasks); while (g_hash_table_iter_next(&iter, &k, &v)) { task_t *t; if (!(t = v)) continue; memset(&bulk, 0, sizeof(bulk)); g_strlcpy(bulk.id, t->id, sizeof(bulk.id)); bulk.period = t->period; bulk.busy = BOOL(t->busy); g_byte_array_append(gba, (guint8*)&bulk, offsetof(struct bulk_s, last)); } return __respond(worker, 1, gba, error); }
void GWControlProxy::setEnable(const bool in_enable) const { AssertFatal(m_attached == true, "Error, not attached..."); EnableWindow(m_ctrlHWnd, BOOL(in_enable)); }
/*********************************************************************** * GetFileNamePreview [MSVFW32.@] */ static BOOL GetFileNamePreview(LPVOID lpofn,BOOL bSave,BOOL bUnicode) { CHAR szFunctionName[20]; BOOL (*fnGetFileName)(LPVOID); HMODULE hComdlg32; BOOL ret; FIXME("(%p,%d,%d), semi-stub!\n",lpofn,bSave,bUnicode); lstrcpyA(szFunctionName, (bSave ? "GetSaveFileName" : "GetOpenFileName")); lstrcatA(szFunctionName, (bUnicode ? "W" : "A")); hComdlg32 = LoadLibraryA("COMDLG32.DLL"); if (hComdlg32 == NULL) return FALSE; fnGetFileName = (LPVOID)GetProcAddress(hComdlg32, szFunctionName); if (fnGetFileName == NULL) return FALSE; /* FIXME: need to add OFN_ENABLEHOOK and our own handler */ ret = fnGetFileName(lpofn); FreeLibrary(hComdlg32); return ret; }
int main(int argc, char** argv) { HANDLE lib; HANDLE event; int i; ULONG_PTR hThread; int sum = 0; USE_USER32(); event = CreateEvent(NULL, TRUE, FALSE, NULL); hThread = _beginthreadex(NULL, 0, run_func, event, 0, &i); for (i=0; i<ITERS; i++) { lib = LoadLibrary("win32.reload.dll.dll"); if (lib == NULL) { print("error loading library\n"); break; } else { /* don't ask to compute fact or fib too high */ BOOL (WINAPI *proc)(DWORD); proc = (BOOL (WINAPI *)(DWORD)) GetProcAddress(lib, (LPCSTR)"import_me"); sum += (*proc)(i % MAX_FACT_FIB); FreeLibrary(lib); } } SetEvent(event); WaitForSingleObject((HANDLE)hThread, INFINITE); print("sum=%d\n", sum); check_mem_usage(); return 0; }
int CSysInfo::GetKernelBitness(void) { #ifdef TARGET_WINDOWS SYSTEM_INFO si; GetSystemInfo(&si); if (si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64) return 64; BOOL (WINAPI *ptrIsWow64) (HANDLE, PBOOL); HMODULE hKernel32 = GetModuleHandleA("kernel32"); if (hKernel32 == NULL) return 0; // Can't detect OS ptrIsWow64 = (BOOL (WINAPI *) (HANDLE, PBOOL)) GetProcAddress(hKernel32, "IsWow64Process"); BOOL wow64proc = FALSE; if (ptrIsWow64 == NULL || ptrIsWow64(GetCurrentProcess(), &wow64proc) == FALSE) return 0; // Can't detect OS return (wow64proc == FALSE) ? 32 : 64; #elif defined(TARGET_POSIX) struct utsname un; if (uname(&un) == 0) { std::string machine(un.machine); if (machine == "x86_64" || machine == "amd64" || machine == "arm64" || machine == "aarch64" || machine == "ppc64" || machine == "ia64") return 64; return 32; } return 0; // can't detect #else return 0; // unknown #endif }
EXPORT unsigned screens() { #if COMPAT_QT_VERSION >= 0x030000 QDesktopWidget *desktop = QApplication::desktop(); return desktop->numScreens(); #else #ifdef WIN32 HINSTANCE hLib = LoadLibraryA("user32.dll"); BOOL (WINAPI *_EnumDisplayMonitors)(HDC, LPCRECT, MONITORENUMPROC, LPARAM) = NULL; (DWORD&)_EnumDisplayMonitors = (DWORD)GetProcAddress(hLib, "EnumDisplayMonitors"); if (_EnumDisplayMonitors == NULL){ FreeLibrary(hLib); return 1; } vector<QRect> rc; if (_EnumDisplayMonitors(NULL, NULL, enumScreens, (LPARAM)&rc) == 0){ FreeLibrary(hLib); return 1; } return rc.size(); #else return 1; #endif #endif }
HRESULT DrawThemesPart(HDC hDC, int iPartId, int iStateId, LPCSTR uiPartNameID, LPRECT prcBox) { if(!IsWinXP()) return E_FAIL; HINSTANCE hDll=LoadLibrary(CString((LPCTSTR)IDS_UTIL_UXTHEME)); // 'UxTheme.dll' if(!hDll) return E_FAIL; BOOL (PASCAL* pfnIsThemeActive)(); UINT hTheme=0; (FARPROC&)pfnIsThemeActive=GetProcAddress(hDll,IDS_UTIL_THEMEACT); // 'IsThemeActive' HRESULT hResult=E_FAIL; if(pfnIsThemeActive && pfnIsThemeActive()) { CString sPartName((LPCTSTR)uiPartNameID); if(sPartName.GetLength()>0) { WCHAR swPartName[WPART_NAME_SZ]; #if !defined(UNICODE) && !defined(_UNICODE) MultiByteToWideChar(CP_ACP,0,(LPCSTR)sPartName,-1,swPartName,sizeof(swPartName)/sizeof(WCHAR)); #else _tcscpy(swPartName, sPartName.GetBuffer()); #endif UINT (PASCAL* pfnOpenThemeData)(HWND hwnd, LPCWSTR pszClassList); (FARPROC&)pfnOpenThemeData=GetProcAddress(hDll,IDS_UTIL_THEMEOPN);// 'OpenThemeData' if(pfnOpenThemeData && (hTheme=pfnOpenThemeData(NULL, swPartName))!=0) { UINT (PASCAL* pfnDrawThemeBackground)(UINT htheme,HDC hdc,int iPartID,int iStateID,const RECT* prcBx,const RECT* prcClip); (FARPROC&)pfnDrawThemeBackground=GetProcAddress(hDll,IDS_UTIL_THEMEBCKG); // 'DrawThemeBackground' if(pfnDrawThemeBackground) hResult=pfnDrawThemeBackground(hTheme, hDC, iPartId, iStateId, prcBox, NULL); } } } FreeLibrary(hDll); return hResult; }
void ReleaseActContext(void) { void (WINAPI *ReleaseActCtx)(HANDLE); BOOL (WINAPI *DeactivateActCtx)(DWORD dwFlags, ULONG_PTR ulCookie); HANDLE k32; if (!IsXPOrLater()) return; k32 = LoadLibrary("kernel32"); ReleaseActCtx = (void*)GetProcAddress(k32, "ReleaseActCtx"); DeactivateActCtx = (void*)GetProcAddress(k32, "DeactivateActCtx"); if (!ReleaseActCtx || !DeactivateActCtx) { VS("Cannot find ReleaseActCtx/DeactivateActCtx exports in kernel32.dll\n"); return; } __try { VS("Deactivating activation context\n"); if (!DeactivateActCtx(0, actToken)) VS("Error deactivating context!\n!"); VS("Releasing activation context\n"); if (hCtx != INVALID_HANDLE_VALUE) ReleaseActCtx(hCtx); VS("Done\n"); } __except (STATUS_SXS_EARLY_DEACTIVATION) { VS("XS early deactivation; somebody left the activation context dirty, let's ignore the problem\n"); } }
void co_winnt_set_service_restart_options(SC_HANDLE schService) { BOOL (WINAPI *ChangeServiceConfig2Ptr)(SC_HANDLE h, DWORD dw, LPVOID lp) = NULL; HINSTANCE hLib = NULL; hLib = LoadLibrary("Advapi32.dll"); if (hLib != NULL) { ChangeServiceConfig2Ptr = GetProcAddress(hLib,"ChangeServiceConfig2A"); FreeLibrary(hLib); } if (ChangeServiceConfig2Ptr) { SC_ACTION actions[3] = { {0} }; SERVICE_FAILURE_ACTIONS actions_info = {0}; co_terminal_print("daemon: setting restart options\n"); actions[0].Type = SC_ACTION_RESTART; /* restart the service */ actions[0].Delay = 1000; /* wait 1 second */ actions[1].Type = SC_ACTION_RESTART; /* restart the service */ actions[1].Delay = 1000; /* wait 1 second */ actions[2].Type = SC_ACTION_NONE; /* abandon our efforts */ actions[2].Delay = 0; /* wait 1 second */ actions_info.dwResetPeriod = 90; /* if we run for 90 seconds, then reset the failure count */ actions_info.cActions = 3; actions_info.lpsaActions = actions; ChangeServiceConfig2Ptr(schService,SERVICE_CONFIG_FAILURE_ACTIONS,&actions_info); } }
gboolean sqlx_name_extract (struct sqlx_name_s *n, struct oio_url_s *url, const char *srvtype, gint64 *pseq) { SQLXNAME_CHECK(n); EXTRA_ASSERT (url != NULL); EXTRA_ASSERT (srvtype != NULL); EXTRA_ASSERT (pseq != NULL); int rc = 0; gchar **tokens; if (NULL != (tokens = g_strsplit (n->type, ".", 2))) { if (tokens[0]) rc = !strcmp(tokens[0], srvtype); oio_url_set (url, OIOURL_TYPE, tokens[1] ? tokens[1] : OIOURL_DEFAULT_TYPE); g_strfreev (tokens); } if (NULL != (tokens = g_strsplit (n->base, ".", 2))) { if (tokens[0]) oio_url_set (url, OIOURL_HEXID, tokens[0]); *pseq = tokens[1] ? g_ascii_strtoll (tokens[1], NULL, 10) : 1; g_strfreev (tokens); } return BOOL(rc); }
// //////////////////////////////////////////////////////////////////////////// char *OS_GetModuleBaseName(HANDLE process_handle, HMODULE module_handle, char *module_name, DWORD module_name_length) { typedef COMPAT_FN_TYPE(BOOL (WINAPI *OS_FPtr_GetModuleBaseNameA), (HANDLE, HMODULE, LPSTR, DWORD)); HMODULE psapi_module_handle = EnsureLoadedLibrary("psapi", true); #pragma warning(disable:4191) OS_FPtr_GetModuleBaseNameA proc_addr = reinterpret_cast<OS_FPtr_GetModuleBaseNameA>(OS_GetProcAddress( psapi_module_handle, "GetModuleBaseNameA", true)); #pragma warning(default:4191) if ((*proc_addr)(process_handle, module_handle, module_name, module_name_length) == 0) MLB::Utility::ThrowSystemError("Call to 'GetModuleBaseNameA()' for " "process " + MLB::Utility::ValueToStringHex(process_handle) + ", module " + MLB::Utility::ValueToStringHex(module_handle) + " with " "a module name buffer located at " + MLB::Utility::ValueToStringHex(module_name) + " and a module name " "buffer length of " + MLB::Utility::AnyToString(module_name_length) + " failed"); return(module_name); }
EXPORT QRect screenGeometry() { #if QT_VERSION >= 300 QDesktopWidget *desktop = QApplication::desktop(); QRect rc; for (int i = 0; i < desktop->numScreens(); i++){ rc |= desktop->screenGeometry(i); } return rc; #else #ifdef WIN32 HINSTANCE hLib = LoadLibraryA("user32.dll"); BOOL (WINAPI *_EnumDisplayMonitors)(HDC, LPCRECT, MONITORENUMPROC, LPARAM) = NULL; (DWORD&)_EnumDisplayMonitors = (DWORD)GetProcAddress(hLib, "EnumDisplayMonitors"); if (_EnumDisplayMonitors == NULL){ FreeLibrary(hLib); return QApplication::desktop()->rect(); } vector<QRect> rc; if (_EnumDisplayMonitors(NULL, NULL, enumScreens, (LPARAM)&rc) == 0){ FreeLibrary(hLib); return QApplication::desktop()->rect(); } QRect res; for (vector<QRect>::iterator it = rc.begin(); it != rc.end(); ++it) res |= (*it); return res; #else return QApplication::desktop()->rect(); #endif #endif }
EXPORT QRect screenGeometry(unsigned nScreen) { #if QT_VERSION >= 300 QDesktopWidget *desktop = QApplication::desktop(); return desktop->screenGeometry(nScreen); #else #ifdef WIN32 HINSTANCE hLib = LoadLibraryA("user32.dll"); BOOL (WINAPI *_EnumDisplayMonitors)(HDC, LPCRECT, MONITORENUMPROC, LPARAM) = NULL; (DWORD&)_EnumDisplayMonitors = (DWORD)GetProcAddress(hLib, "EnumDisplayMonitors"); if (_EnumDisplayMonitors == NULL){ FreeLibrary(hLib); return QApplication::desktop()->rect(); } vector<QRect> rc; if (_EnumDisplayMonitors(NULL, NULL, enumScreens, (LPARAM)&rc) == 0){ FreeLibrary(hLib); return QApplication::desktop()->rect(); } return rc[nScreen]; #else return QApplication::desktop()->rect(); #endif #endif }
bool LinkPalettes(PaletteT *palette, ...) { int start = 0; va_list ap; va_start(ap, palette); for (;;) { PaletteT *next = va_arg(ap, PaletteT *); /* Just for safety. */ UnlinkPalettes(palette); palette->start = start; palette->next = next; start += palette->count; if (!next) break; palette = next; } va_end(ap); return BOOL(start <= 256); }
HWND MdiOpenIcon() { FILEOPEN of; char filename[ _MAX_PATH ]; char title[ _MAX_PATH ]; char ext[16]; FILE *fp; HWND hwnd; HANDLE dll; #if defined(__WINDOWS_386__) HINDIR h; #else BOOL (PASCAL FAR *gsn)( LPFILEOPEN ); #endif FARPROC farp; DWORD a1,a2; BOOL rc; dll = LoadLibrary( "filedll.dll" ); if( dll < 32 ) { MessageBox( NULL, "Could not find filedll.dll!", "Icon Viewer", MB_OK ); return( FALSE ); } farp = (FARPROC) GetProcAddress( dll,"GetFileName" ); #if defined(__WINDOWS_386__) h = GetIndirectFunctionHandle( farp, INDIR_PTR, INDIR_ENDLIST ); #else gsn = (void FAR *) farp; #endif filename[ 0 ] = '\0'; of.hwnd = FrameWindow; a1 = AllocAlias16( "*.ico" ); of.ext = (LPSTR) a1; a2 = AllocAlias16( filename ); of.name = (LPSTR) a2; of.namelen = sizeof( filename ); of.type = FILE_OPEN; of.title = NULL; #if defined(__WINDOWS_386__) rc = InvokeIndirectFunction( h, &of ); #else rc = gsn( &of ); #endif if( rc ) { _splitpath( filename, NULL, NULL, title, ext ); strcat( title, ext ); fp = fopen( filename, "rb" ); hwnd = MdiReadIcon( fp, title, filename, WS_ICONIC ); ShowWindow( hwnd, SW_SHOWMINIMIZED ); UpdateWindow( hwnd ); fclose( fp ); } FreeAlias16( a1 ); FreeAlias16( a2 ); FreeLibrary( dll ); return( hwnd ); } /* MdiIconOpen */
void Bot_SetTextColor(ConsoleColor Color) { #ifndef WIN printf("\033[%dm", Color); #else BOOL (WINAPI *DoSetConsoleTextAttribute)(HANDLE, WORD) = NULL; HANDLE WDescriptor = GetStdHandle(STD_OUTPUT_HANDLE); static HMODULE kernel32 = (HMODULE)0xffffffff; WORD WinColor = 0; if (kernel32 == 0) { return; } else if(kernel32 == (HMODULE)0xffffffff) { kernel32 = LoadLibrary("kernel32.dll"); if (kernel32 == 0) { return; } } /*Not supported.*/ if (!(DoSetConsoleTextAttribute = (BOOL (WINAPI *)(HANDLE, WORD))GetProcAddress(kernel32, "SetConsoleTextAttribute"))) return; switch (Color) { case BLACK: WinColor = 0; break; case BLUE: WinColor = 1; break; case GREEN: WinColor = 2; break; case CYAN: WinColor = 3; break; case RED: WinColor = 4; break; case MAGENTA: WinColor = 5; break; case YELLOW: WinColor = 6; break; default: /*Everything else just becomes white.*/ WinColor = 7; break; } DoSetConsoleTextAttribute(WDescriptor, WinColor); #endif }
ProcessStarterPrivate::_phandle ProcessStarterPrivate::GetCurrentUserToken() { QLibrary wts("Wtsapi32"); BOOL (__stdcall * pWTSQueryUserToken)(ULONG SessionId,PHANDLE phToken) = (BOOL(__stdcall *)(ULONG,PHANDLE)) wts.resolve("WTSQueryUserToken"); BOOL (__stdcall * pWTSEnumerateSessionsW)(HANDLE hServer,DWORD Reserved,DWORD Version, PWTS_SESSION_INFOW * ppSessionInfo,DWORD * pCount) = (BOOL(__stdcall *)(HANDLE, DWORD,DWORD,PWTS_SESSION_INFOW *, DWORD *)) wts.resolve("WTSEnumerateSessionsW"); PHANDLE currentToken = &curTok; PHANDLE primaryToken = &primTok; int dwSessionId = 0; PWTS_SESSION_INFOW pSessionInfo = 0; DWORD dwCount = 0; pWTSEnumerateSessionsW(WTS_CURRENT_SERVER_HANDLE, 0, 1, &pSessionInfo, &dwCount); for (DWORD i = 0; i < dwCount; ++i) { WTS_SESSION_INFO si = pSessionInfo[i]; if (WTSActive == si.State) { dwSessionId = si.SessionId; break; } } BOOL bRet = pWTSQueryUserToken(dwSessionId, currentToken); int errorcode = GetLastError(); if (bRet == false) { return 0; } bRet = DuplicateTokenEx(*currentToken, TOKEN_ASSIGN_PRIMARY | TOKEN_ALL_ACCESS, 0, SecurityImpersonation, TokenPrimary, primaryToken); errorcode = GetLastError(); if (bRet == false) { return 0; } return primaryToken; }