本文整理汇总了C++中GetModuleHandle函数的典型用法代码示例。如果您正苦于以下问题:C++ GetModuleHandle函数的具体用法?C++ GetModuleHandle怎么用?C++ GetModuleHandle使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了GetModuleHandle函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ProxySettingsDialogFunc
BOOL CALLBACK ProxySettingsDialogFunc (HWND hwndDlg, UINT msg, WPARAM wParam, UNUSED LPARAM lParam)
{
HICON hIcon;
switch (msg) {
case WM_INITDIALOG:
hIcon = (HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(APP_ICON),
IMAGE_ICON, 0, 0, LR_DEFAULTCOLOR);
if (hIcon) {
SendMessage(hwndDlg, WM_SETICON, (WPARAM) (ICON_SMALL), (LPARAM) (hIcon));
SendMessage(hwndDlg, WM_SETICON, (WPARAM) (ICON_BIG), (LPARAM) (hIcon));
}
/* Limit Port editboxs to 5 chars. */
SendMessage(GetDlgItem(hwndDlg, EDIT_PROXY_HTTP_PORT), EM_SETLIMITTEXT, 5, 0);
SendMessage(GetDlgItem(hwndDlg, EDIT_PROXY_SOCKS_PORT), EM_SETLIMITTEXT, 5, 0);
LoadProxySettings(hwndDlg);
break;
case WM_COMMAND:
switch (LOWORD(wParam)) {
case IDOK:
if (CheckProxySettings(hwndDlg))
{
SaveProxySettings(hwndDlg);
EndDialog(hwndDlg, LOWORD(wParam));
return TRUE;
}
return FALSE;
case IDCANCEL:
EndDialog(hwndDlg, LOWORD(wParam));
return TRUE;
case RB_PROXY_USE_OPENVPN:
if (HIWORD(wParam) == BN_CLICKED)
{
EnableWindow(GetDlgItem(hwndDlg, RB_PROXY_HTTP), FALSE);
EnableWindow(GetDlgItem(hwndDlg, RB_PROXY_SOCKS), FALSE);
EnableWindow(GetDlgItem(hwndDlg, EDIT_PROXY_HTTP_ADDRESS), FALSE);
EnableWindow(GetDlgItem(hwndDlg, EDIT_PROXY_HTTP_PORT), FALSE);
EnableWindow(GetDlgItem(hwndDlg, TEXT_PROXY_HTTP_ADDRESS), FALSE);
EnableWindow(GetDlgItem(hwndDlg, TEXT_PROXY_HTTP_PORT), FALSE);
EnableWindow(GetDlgItem(hwndDlg, CHECKB_PROXY_AUTH), FALSE);
EnableWindow(GetDlgItem(hwndDlg, EDIT_PROXY_SOCKS_ADDRESS), FALSE);
EnableWindow(GetDlgItem(hwndDlg, EDIT_PROXY_SOCKS_PORT), FALSE);
EnableWindow(GetDlgItem(hwndDlg, TEXT_PROXY_SOCKS_ADDRESS), FALSE);
EnableWindow(GetDlgItem(hwndDlg, TEXT_PROXY_SOCKS_PORT), FALSE);
break;
}
case RB_PROXY_USE_IE:
if (HIWORD(wParam) == BN_CLICKED)
{
EnableWindow(GetDlgItem(hwndDlg, RB_PROXY_HTTP), FALSE);
EnableWindow(GetDlgItem(hwndDlg, RB_PROXY_SOCKS), FALSE);
EnableWindow(GetDlgItem(hwndDlg, EDIT_PROXY_HTTP_ADDRESS), FALSE);
EnableWindow(GetDlgItem(hwndDlg, EDIT_PROXY_HTTP_PORT), FALSE);
EnableWindow(GetDlgItem(hwndDlg, TEXT_PROXY_HTTP_ADDRESS), FALSE);
EnableWindow(GetDlgItem(hwndDlg, TEXT_PROXY_HTTP_PORT), FALSE);
EnableWindow(GetDlgItem(hwndDlg, CHECKB_PROXY_AUTH), TRUE);
EnableWindow(GetDlgItem(hwndDlg, EDIT_PROXY_SOCKS_ADDRESS), FALSE);
EnableWindow(GetDlgItem(hwndDlg, EDIT_PROXY_SOCKS_PORT), FALSE);
EnableWindow(GetDlgItem(hwndDlg, TEXT_PROXY_SOCKS_ADDRESS), FALSE);
EnableWindow(GetDlgItem(hwndDlg, TEXT_PROXY_SOCKS_PORT), FALSE);
break;
}
case RB_PROXY_USE_MANUAL:
if (HIWORD(wParam) == BN_CLICKED)
{
EnableWindow(GetDlgItem(hwndDlg, RB_PROXY_HTTP), TRUE);
EnableWindow(GetDlgItem(hwndDlg, RB_PROXY_SOCKS), TRUE);
if (IsDlgButtonChecked(hwndDlg, RB_PROXY_HTTP) == BST_CHECKED)
{
EnableWindow(GetDlgItem(hwndDlg, EDIT_PROXY_HTTP_ADDRESS), TRUE);
EnableWindow(GetDlgItem(hwndDlg, EDIT_PROXY_HTTP_PORT), TRUE);
EnableWindow(GetDlgItem(hwndDlg, TEXT_PROXY_HTTP_ADDRESS), TRUE);
EnableWindow(GetDlgItem(hwndDlg, TEXT_PROXY_HTTP_PORT), TRUE);
EnableWindow(GetDlgItem(hwndDlg, CHECKB_PROXY_AUTH), TRUE);
EnableWindow(GetDlgItem(hwndDlg, EDIT_PROXY_SOCKS_ADDRESS), FALSE);
EnableWindow(GetDlgItem(hwndDlg, EDIT_PROXY_SOCKS_PORT), FALSE);
EnableWindow(GetDlgItem(hwndDlg, TEXT_PROXY_SOCKS_ADDRESS), FALSE);
EnableWindow(GetDlgItem(hwndDlg, TEXT_PROXY_SOCKS_PORT), FALSE);
}
else
{
EnableWindow(GetDlgItem(hwndDlg, EDIT_PROXY_HTTP_ADDRESS), FALSE);
EnableWindow(GetDlgItem(hwndDlg, EDIT_PROXY_HTTP_PORT), FALSE);
EnableWindow(GetDlgItem(hwndDlg, TEXT_PROXY_HTTP_ADDRESS), FALSE);
EnableWindow(GetDlgItem(hwndDlg, TEXT_PROXY_HTTP_PORT), FALSE);
EnableWindow(GetDlgItem(hwndDlg, CHECKB_PROXY_AUTH), FALSE);
EnableWindow(GetDlgItem(hwndDlg, EDIT_PROXY_SOCKS_ADDRESS), TRUE);
EnableWindow(GetDlgItem(hwndDlg, EDIT_PROXY_SOCKS_PORT), TRUE);
EnableWindow(GetDlgItem(hwndDlg, TEXT_PROXY_SOCKS_ADDRESS), TRUE);
EnableWindow(GetDlgItem(hwndDlg, TEXT_PROXY_SOCKS_PORT), TRUE);
//.........这里部分代码省略.........
示例2: ClearKeyBuffers
glWindow::glWindow (bool fullScreen,
bool border,
int width,
int height,
int bpp,
bool stencil,
std::string title,
bool allowResizing,
bool fitToWorkArea,
ResetGLModeType resetGLMode) {
m_resetGLMode = resetGLMode;
// Null default values
// If constructor is aborted, then destructor wont try to deallocate garbage handles.
m_HDC = 0;
m_HGLRC = 0;
m_HWnd = 0;
m_HInstance = 0;
m_active = false;
m_focused = false;
m_visible = false;
m_closing = false;
m_bufStart = 0;
m_bufEnd = 0;
m_scanBufStart = 0;
m_scanBufEnd = 0;
m_showingCursor = true;
// Clear key buffers
ClearKeyBuffers ();
// Defaults
m_fov = 60;
m_nearClip = 1;
m_farClip = 1000;
m_painting = false;
m_dontPaint = false;
m_pausePressed = false;
m_mouseX = 0;
m_mouseY = 0;
m_mouseButton [0] = 0;
m_mouseButton [1] = 0;
m_mouseButton [2] = 0;
m_mouseWheel = 0;
m_mouseWheelDelta = 0;
m_mouseCentred = false;
m_HInstance = GetModuleHandle(NULL); // Grab An Instance For Our Window
// Create open GL window.
// Note: Caller should check error state after construction. If error set,
// then the window is probably unusable
WNDCLASS wc; // Windows Class Structure
wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC; // Redraw On Size, And Own DC For Window.
wc.lpfnWndProc = (WNDPROC) ::WndProc; // WndProc Handles Messages
wc.cbClsExtra = 0; // No Extra Window Data
wc.cbWndExtra = 0; // No Extra Window Data
wc.hInstance = m_HInstance; // Set The Instance
wc.hIcon = LoadIcon(NULL, IDI_WINLOGO); // Load The Default Icon
wc.hCursor = LoadCursor(NULL, IDC_ARROW); // Load The Arrow Pointer
wc.hbrBackground = NULL; // No Background Required For GL
wc.lpszMenuName = NULL; // We Don't Want A Menu
wc.lpszClassName = "gbOpenGL"; // Set The Class Name
if (!RegisterClass(&wc)) // Attempt To Register The Window Class
{
SetError ("Window class registration failed");
return;
}
RecreateWindow (fullScreen, border, width, height, bpp, stencil, title, allowResizing, fitToWorkArea);
}
示例3: m_initResources
/////////////////////////////////
// Constructor and destructor //
/////////////////////////////////
SpoutReceiverSDK2::SpoutReceiverSDK2()
:CFreeFrameGLPlugin(),
m_initResources(1),
m_maxCoordsLocation(-1)
{
HMODULE module;
char path[MAX_PATH];
/*
// Debug console window so printf works
FILE* pCout;
AllocConsole();
freopen_s(&pCout, "CONOUT$", "w", stdout);
#ifdef DX9Mode
printf("SpoutReceiver2 DX9 Vers 3.025\n");
#else
printf("SpoutReceiver2 DX11 Vers 3.025\n");
#endif
*/
// Input properties - this is a source and has no inputs
SetMinInputs(0);
SetMaxInputs(0);
//
// ======== initial values ========
//
#ifdef DX9Mode
bDX9mode = true; // DirectX 9 mode rather than default DirectX 11
#else
bDX9mode = false;
#endif
bInitialized = false; // not initialized yet by either means
bAspect = false; // preserve aspect ratio of received texture in draw
bUseActive = true; // connect to the active sender
bStarted = false; // Do not allow a starting cycle
UserSenderName[0] = 0; // User entered sender name
g_Width = 512;
g_Height = 512; // arbitrary initial image size
myTexture = 0; // only used for memoryshare mode
//
// Parameters
//
// Memoryshare define
// if set to true (memory share only), it connects as memory share
// and there is no user option to select a sender
// default is false (automatic)
#ifndef MemoryShareMode
SetParamInfo(FFPARAM_SharingName, "Sender Name", FF_TYPE_TEXT, "");
SetParamInfo(FFPARAM_Update, "Update", FF_TYPE_EVENT, false );
SetParamInfo(FFPARAM_Select, "Select", FF_TYPE_EVENT, false );
bMemoryMode = false;
#else
bMemoryMode = true;
#endif
SetParamInfo(FFPARAM_Aspect, "Aspect", FF_TYPE_BOOLEAN, false );
// For memory mode, tell Spout to use memoryshare
if(bMemoryMode) {
receiver.SetMemoryShareMode();
// Give it an arbitrary user name for ProcessOpenGL
strcpy_s(UserSenderName, 256, "0x8e14549a");
}
// Set DirectX mode depending on DX9 flag
if(bDX9mode)
receiver.SetDX9(true);
else
receiver.SetDX9(false);
// Find the host executable name
module = GetModuleHandle(NULL);
GetModuleFileNameA(module, path, MAX_PATH);
_splitpath_s(path, NULL, 0, NULL, 0, HostName, MAX_PATH, NULL, 0);
// Isadora and Resolume act on button down
// Isadora activates all parameters on plugin load, so allow one cycle for starting.
// Magic reacts on button-up, so when the dll loads the parameters are not activated.
// Magic and default Windows apps act on button up so all is OK.
if(strstr(HostName, "Avenue") == 0 || strstr(HostName, "Arena") == 0 || strstr(HostName, "Isadora") == 0) {
bStarted = false;
}
else {
bStarted = true;
}
}
示例4: memset
BOOL INPUTCLASS::Init(HWND hParentWnd, INPUTPROC inputProc)
{
if (hParentWnd == NULL) return FALSE;
if (inputProc == NULL) return FALSE;
this->hParentWnd = hParentWnd;
pDI = NULL;
pKeyboard = NULL;
pJoystick = NULL;
Feedback = FALSE;
memset(cDIBuf, 0, sizeof(cDIBuf));
memset(JoystickName, 0, sizeof(JoystickName));
if(FAILED(DirectInput8Create(GetModuleHandle(NULL),DIRECTINPUT_VERSION,IID_IDirectInput8,(void**)&pDI,NULL)))
return FALSE;
if (!FAILED(pDI->CreateDevice(GUID_SysKeyboard,&pKeyboard,NULL)))
{
if (!FAILED(pKeyboard->SetDataFormat(&c_dfDIKeyboard)))
{
if (FAILED(pKeyboard->SetCooperativeLevel(hParentWnd,DISCL_FOREGROUND|DISCL_NONEXCLUSIVE)))
{
pKeyboard->Release();
pKeyboard = NULL;
}
}
else
{
pKeyboard->Release();
pKeyboard = NULL;
}
}
pJoystick = EnumDevices(pDI);
if (pJoystick)
{
if(!FAILED(pJoystick->SetDataFormat(&c_dfDIJoystick2)))
{
if(FAILED(pJoystick->SetCooperativeLevel(hParentWnd,DISCL_FOREGROUND|DISCL_EXCLUSIVE)))
{
pJoystick->Release();
pJoystick = NULL;
}
else
{
tmp_Joystick = pJoystick;
pJoystick->EnumObjects(::EnumObjects, (VOID*)hParentWnd, DIDFT_ALL);
memset(&DIJoycap,0,sizeof(DIDEVCAPS));
DIJoycap.dwSize=sizeof(DIDEVCAPS);
pJoystick->GetCapabilities(&DIJoycap);
}
}
else
{
pJoystick->Release();
pJoystick = NULL;
}
}
if (pJoystick)
{
DIPROPDWORD dipdw;
dipdw.diph.dwSize = sizeof(DIPROPDWORD);
dipdw.diph.dwHeaderSize = sizeof(DIPROPHEADER);
dipdw.diph.dwObj = 0;
dipdw.diph.dwHow = DIPH_DEVICE;
dipdw.dwData = 0;
if ( !FAILED( pJoystick->SetProperty(DIPROP_AUTOCENTER, &dipdw.diph) ) )
{
DWORD rgdwAxes[1] = { DIJOFS_Y };
LONG rglDirection[2] = { 0 };
DICONSTANTFORCE cf = { 0 };
DIEFFECT eff;
cf.lMagnitude = (DI_FFNOMINALMAX * 100);
memset(&eff, 0, sizeof(eff));
eff.dwSize = sizeof(DIEFFECT);
eff.dwFlags = DIEFF_CARTESIAN | DIEFF_OBJECTOFFSETS;
eff.dwDuration = INFINITE;
eff.dwSamplePeriod = 0;
eff.dwGain = DI_FFNOMINALMAX;
eff.dwTriggerButton = DIEB_NOTRIGGER;
eff.dwTriggerRepeatInterval = 0;
eff.cAxes = 1;
eff.rgdwAxes = rgdwAxes;
eff.rglDirection = rglDirection;
eff.lpEnvelope = 0;
eff.cbTypeSpecificParams = sizeof( DICONSTANTFORCE );
eff.lpvTypeSpecificParams = &cf;
eff.dwStartDelay = 0;
if( FAILED( pJoystick->CreateEffect(GUID_ConstantForce, &eff, &pEffect, NULL) ) )
Feedback = FALSE;
}
else
Feedback = FALSE;
}
//.........这里部分代码省略.........
示例5: CC_BREAK_IF
bool CCEGLView::Create()
{
bool bRet = false;
do
{
CC_BREAK_IF(m_hWnd);
HINSTANCE hInstance = GetModuleHandle( NULL );
WNDCLASS wc; // Windows Class Structure
// Redraw On Size, And Own DC For Window.
wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
wc.lpfnWndProc = _WindowProc; // WndProc Handles Messages
wc.cbClsExtra = 0; // No Extra Window Data
wc.cbWndExtra = 0; // No Extra Window Data
wc.hInstance = hInstance; // Set The Instance
wc.hIcon = LoadIcon( NULL, IDI_WINLOGO ); // Load The Default Icon
wc.hCursor = LoadCursor( NULL, IDC_ARROW ); // Load The Arrow Pointer
wc.hbrBackground = NULL; // No Background Required For GL
wc.lpszMenuName = m_menu; //
wc.lpszClassName = kWindowClassName; // Set The Class Name
CC_BREAK_IF(! RegisterClass(&wc) && 1410 != GetLastError());
// center window position
RECT rcDesktop;
GetWindowRect(GetDesktopWindow(), &rcDesktop);
WCHAR wszBuf[50] = {0};
MultiByteToWideChar(CP_UTF8, 0, m_szViewName, -1, wszBuf, sizeof(wszBuf));
// create window
m_hWnd = CreateWindowEx(
WS_EX_APPWINDOW | WS_EX_WINDOWEDGE, // Extended Style For The Window
kWindowClassName, // Class Name
wszBuf, // Window Title
WS_CAPTION | WS_POPUPWINDOW | WS_MINIMIZEBOX, // Defined Window Style
0, 0, // Window Position
//TODO: Initializing width with a large value to avoid getting a wrong client area by 'GetClientRect' function.
1000, // Window Width
1000, // Window Height
NULL, // No Parent Window
NULL, // No Menu
hInstance, // Instance
NULL );
CC_BREAK_IF(! m_hWnd);
bRet = initGL();
if(!bRet) destroyGL();
CC_BREAK_IF(!bRet);
s_pMainWindow = this;
bRet = true;
} while (0);
#if(_MSC_VER >= 1600)
m_bSupportTouch = CheckTouchSupport();
if(m_bSupportTouch)
{
m_bSupportTouch = (s_pfRegisterTouchWindowFunction(m_hWnd, 0) != 0);
}
#endif /* #if(_MSC_VER >= 1600) */
return bRet;
}
示例6: CheckMessageBoxProc
/**
* Below CheckMessageBoxProc adds everyones favorite "don't show again" checkbox to the dialog
* much of the layout code (especially for XP and older windows versions) is copied with changes
* from a GPL'ed project emabox at SourceForge.
**/
LRESULT CALLBACK CheckMessageBoxProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_COMMAND:
{
if (HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == 2025)
{
const LRESULT res = SendMessage((HWND)lParam, BM_GETSTATE, 0, 0);
bool bCheckedAfter = ((res & BST_CHECKED) == 0);
// Update usedata
ExMessageBox::SetUserData((void*)(bCheckedAfter ? BST_CHECKED : BST_UNCHECKED));
SendMessage((HWND)lParam, BM_SETCHECK, bCheckedAfter ? BST_CHECKED : BST_UNCHECKED, 0);
}
}
break;
case WM_ERASEBKGND:
{
// Vista+ has grey strip
if (WinUtil::getOsMajor() >= 6)
{
RECT rc = {0};
HDC dc = (HDC)wParam;
// Fill the entire dialog
GetClientRect(hWnd, &rc);
FillRect(dc, &rc, GetSysColorBrush(COLOR_WINDOW));
// Calculate strip height
RECT rcButton = {0};
GetWindowRect(FindWindowEx(hWnd, NULL, L"BUTTON", NULL), &rcButton);
int stripHeight = (rcButton.bottom - rcButton.top) + 24;
// Fill the strip
rc.top += (rc.bottom - rc.top) - stripHeight;
FillRect(dc, &rc, GetSysColorBrush(COLOR_3DFACE));
// Make a line
HGDIOBJ oldPen = SelectObject(dc, CreatePen(PS_SOLID, 1, GetSysColor(COLOR_3DLIGHT)));
MoveToEx(dc, rc.left - 1, rc.top, (LPPOINT)NULL);
LineTo(dc, rc.right, rc.top);
DeleteObject(SelectObject(dc, oldPen));
return S_OK;
}
}
break;
case WM_CTLCOLORSTATIC:
{
// Vista+ has grey strip
if ((WinUtil::getOsMajor() >= 6) && ((HWND)lParam == GetDlgItem(hWnd, 2025)))
{
HDC hdc = (HDC)wParam;
SetBkMode(hdc, TRANSPARENT);
return (LRESULT)GetSysColorBrush(COLOR_3DFACE);
}
}
break;
case WM_INITDIALOG:
{
RECT rc = {0};
HWND current = NULL;
int iWindowWidthBefore;
int iWindowHeightBefore;
int iClientHeightBefore;
int iClientWidthBefore;
pair<LPCTSTR, UINT> checkdata = (*(pair<LPCTSTR, UINT>*)ExMessageBox::GetUserData());
GetClientRect(hWnd, &rc);
iClientHeightBefore = rc.bottom - rc.top;
iClientWidthBefore = rc.right - rc.left;
GetWindowRect(hWnd, &rc);
iWindowWidthBefore = rc.right - rc.left;
iWindowHeightBefore = rc.bottom - rc.top;
// Create checkbox (resized and moved later)
HWND check = CreateWindow(L"BUTTON", checkdata.first, WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_VCENTER | BS_CHECKBOX,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
hWnd, (HMENU)2025, GetModuleHandle(NULL), NULL
);
// Assume checked by default
SendMessage(check, BM_SETCHECK, checkdata.second, 0);
ExMessageBox::SetUserData((void*)checkdata.second);
// Apply default font
const int cyMenuSize = GetSystemMetrics(SM_CYMENUSIZE);
const int cxMenuSize = GetSystemMetrics(SM_CXMENUSIZE);
const HFONT hNewFont = (HFONT)GetStockObject(DEFAULT_GUI_FONT);
HFONT hOldFont;
SIZE size;
//.........这里部分代码省略.........
示例7: GetModuleHandle
IDirect3DDevice9 *d3dwin_open( char *title, unsigned int width_, unsigned int height_, D3DFORMAT format, BOOL fullscreen_ ){
DIRECT3DCREATE9 Direct3DCreate9;
RECT rect;
WNDCLASS wc;
UINT32 style;
D3DDISPLAYMODE displaymode;
D3DPRESENT_PARAMETERS presentparameters;
D3DCAPS9 caps;
width = width_;
height = height_;
fullscreen = fullscreen_;
inst = GetModuleHandle(NULL);
library = (HMODULE) LoadLibrary("d3d9.dll");
if(!library) return NULL;
Direct3DCreate9 = (DIRECT3DCREATE9) GetProcAddress(library,"Direct3DCreate9");
if(!Direct3DCreate9) return NULL;
direct3d=Direct3DCreate9(D3D_SDK_VERSION);
if(!direct3d) return NULL;
if(!fullscreen)
style = WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU;
else{
style = WS_POPUP;
ShowCursor(FALSE);
}
rect.left = 0;
rect.top = 0;
rect.right = width;
rect.bottom = height;
if(!fullscreen) AdjustWindowRect( &rect, style, FALSE );
wc.style = CS_VREDRAW|CS_HREDRAW;
wc.lpfnWndProc = window_proc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = 0;
wc.hIcon = LoadIcon(inst,MAKEINTRESOURCE(IDI_ICON));
wc.hCursor = LoadCursor(inst,IDC_ARROW);
wc.hbrBackground = 0;
wc.lpszMenuName = 0;
wc.lpszClassName = "d3d9";
RegisterClass(&wc);
win = CreateWindowEx(0, "d3d9", title, (style)|WS_VISIBLE, 0, 0, rect.right-rect.left, rect.bottom-rect.top, 0, 0, inst, 0);
if(!win) return NULL;
memset(&presentparameters, 0, sizeof(D3DPRESENT_PARAMETERS));
if(!fullscreen){
if(FAILED(IDirect3D9_GetAdapterDisplayMode( direct3d, D3DADAPTER_DEFAULT, &displaymode ))){
d3dwin_close();
return NULL;
}
}
if(!fullscreen) presentparameters.Windowed = TRUE;
presentparameters.SwapEffect = D3DSWAPEFFECT_DISCARD;
presentparameters.BackBufferWidth = width;
presentparameters.BackBufferHeight = height;
if( fullscreen ) presentparameters.BackBufferFormat = format;
else presentparameters.BackBufferFormat = displaymode.Format;
presentparameters.AutoDepthStencilFormat = D3DFMT_D24S8;
presentparameters.EnableAutoDepthStencil = TRUE;
IDirect3D9_GetDeviceCaps(direct3d, D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, &caps);
if(FAILED(IDirect3D9_CreateDevice( direct3d,
D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
win,
(caps.DevCaps&D3DDEVCAPS_HWTRANSFORMANDLIGHT) ? D3DCREATE_HARDWARE_VERTEXPROCESSING : D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&presentparameters,
&device))){
d3dwin_close();
return NULL;
}
IDirect3DDevice9_Clear(device, 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,0), 1.0f, 0);
IDirect3DDevice9_Present(device, NULL, NULL, NULL, NULL);
return device;
}
示例8: GetStockObject
void ToolsOptionsWindow::OnCreate (HWND hWnd)
{
// Make this window handle global
m_hwnd = hWnd;
g_hWnd = hWnd; // Need to do this otherwise the control creation wrapper functions don't work.
HFONT hfDefault = (HFONT) GetStockObject (DEFAULT_GUI_FONT);
// The status list box
m_lstcategory = CreateWindow ("listbox", NULL, WS_CHILD | WS_BORDER | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL, 10, 10, 100, 480, hWnd, (HMENU) ID_LSTOPTIONCATEGORY, GetModuleHandle (NULL), NULL);
SendMessage (m_lstcategory, WM_SETFONT, (WPARAM) hfDefault, MAKELPARAM (FALSE, 0));
SendMessage (m_lstcategory, LB_SETITEMHEIGHT, 0, 32);
CreateGeneralPanel ();
//ID_OPTWINDOWCLOSE
m_btnclose = CreateButton ("Close", 455, 440, 70, 23, ID_OPTWINDOWCLOSE);
// Add the categories to the list box
char szGeneral[SIZE_NAME];
ZeroMemory (szGeneral, SIZE_NAME);
strcpy_s (szGeneral, SIZE_NAME, "General");
SendMessage (m_lstcategory, LB_ADDSTRING, 0, (LPARAM) szGeneral);
// Read the registry settings, and set the control values
ReadRegistrySettings ();
}
示例9: main_skin_open
//.........这里部分代码省略.........
memset(&Skin, 0, sizeof(Skin));
GetPrivateProfileString(NULL, NULL, NULL,
buffer, sizeof(buffer), pathbuf);
returnval = GetPrivateProfileSection("CoolPlayer Skin", // address of section name
values, // address of return buffer
32767, // size of return buffer
pathbuf // address of initialization filename
);
if (returnval == 0)
{
char textbuf[MAX_PATH + 50];
sprintf(textbuf, "Not a valid CoolPlayer Skin file: %s", pathbuf);
MessageBox(GetForegroundWindow(), textbuf, "error", MB_ICONERROR);
options.use_default_skin = TRUE;
return FALSE;
}
textposition = values;
while (*textposition != 0)
{
main_skin_check_ini_value(textposition, associate);
textposition = textposition + strlen(textposition) + 1;
}
path_remove_filespec(pathbuf);
strcat(pathbuf, Skin.CoolUp);
hInstance = GetModuleHandle(NULL);
DeleteObject(graphics.bmp_main_up);
graphics.bmp_main_up =
(HBITMAP) LoadImage(hInstance, pathbuf, IMAGE_BITMAP, 0, 0,
LR_LOADFROMFILE);
if (!graphics.bmp_main_up)
{
strcat(errorbuf, pathbuf);
strcat(errorbuf, "\n");
}
path_remove_filespec(pathbuf);
strcat(pathbuf, Skin.CoolDown);
DeleteObject(graphics.bmp_main_down);
graphics.bmp_main_down =
(HBITMAP) LoadImage(hInstance, pathbuf, IMAGE_BITMAP, 0, 0,
LR_LOADFROMFILE);
if (!graphics.bmp_main_down)
{
strcat(errorbuf, pathbuf);
strcat(errorbuf, "\n");
}
path_remove_filespec(pathbuf);
strcat(pathbuf, Skin.CoolSwitch);
DeleteObject(graphics.bmp_main_switch);
graphics.bmp_main_switch =
(HBITMAP) LoadImage(hInstance, pathbuf, IMAGE_BITMAP, 0, 0,
LR_LOADFROMFILE);
示例10: BeginD3DStuff
//////////////////////////////////////////////////////////
//
// BeginD3DStuff
//
// Look all busy and important in case any graphic drivers are looking
//
//////////////////////////////////////////////////////////
void BeginD3DStuff( void )
{
pD3D9 = Direct3DCreate9( D3D_SDK_VERSION );
if ( !pD3D9 )
{
WriteDebugEvent( "D3DStuff - Direct3DCreate9 failed" );
return;
}
WriteDebugEvent( "D3DStuff -------------------------" );
WriteDebugEvent( SString( "D3DStuff - Direct3DCreate9: 0x%08x", pD3D9 ) );
// Get info about each connected adapter
uint uiNumAdapters = pD3D9->GetAdapterCount();
WriteDebugEvent( SString( "D3DStuff - %d Adapters", uiNumAdapters ) );
for ( uint i = 0 ; i < uiNumAdapters ; i++ )
{
D3DADAPTER_IDENTIFIER9 Identifier;
D3DDISPLAYMODE DisplayMode;
D3DCAPS9 Caps9;
HRESULT hr1 = pD3D9->GetAdapterIdentifier( i, 0, &Identifier );
HRESULT hr2 = pD3D9->GetAdapterDisplayMode( i, &DisplayMode );
HRESULT hr3 = pD3D9->GetDeviceCaps( i, D3DDEVTYPE_HAL, &Caps9 );
UINT ModeCount = pD3D9->GetAdapterModeCount( i, D3DFMT_X8R8G8B8 );
HMONITOR hMonitor = pD3D9->GetAdapterMonitor( i );
if ( FAILED( hr1 ) || FAILED( hr2 ) || FAILED( hr3 ) )
{
WriteDebugEvent( SString( "D3DStuff %d Failed GetAdapterIdentifier(%x) GetAdapterDisplayMode(%x) GetDeviceCaps(%x) ", i, hr1, hr2, hr3 ) );
continue;
}
// Detect Optimus combo
if ( SStringX( Identifier.Driver ).BeginsWithI( "nv" )
&& SStringX( Identifier.Description ).BeginsWithI( "Intel" )
)
{
bDetectedOptimus = true;
WriteDebugEvent( SString( "D3DStuff %d - Detected Optimus Combo", i ) );
}
if ( GetModuleHandle( "nvd3d9wrap.dll" ) != NULL )
{
bDetectedOptimus = true;
WriteDebugEvent( SString( "D3DStuff %d - Detected nvd3d9wrap", i ) );
}
WriteDebugEvent( SString( "D3DStuff %d Identifier - %s", i, *ToString( Identifier ) ) );
WriteDebugEvent( SString( "D3DStuff %d DisplayMode - %s", i, *ToString( DisplayMode ) ) );
WriteDebugEvent( SString( "D3DStuff %d hMonitor:0x%08x ModeCount:%d", i, hMonitor, ModeCount ) );
WriteDebugEvent( SString( "D3DStuff %d Caps9 - %s ", i, *ToString( Caps9 ) ) );
}
if ( GetApplicationSettingInt( "nvhacks", "optimus-force-detection" ) )
bDetectedOptimus = true;
SetApplicationSettingInt( "nvhacks", "optimus", bDetectedOptimus );
if ( bDetectedOptimus )
{
ShowOptimusDialog ( g_hInstance );
HideOptimusDialog ();
}
else
{
SetApplicationSettingInt( "nvhacks", "optimus-alt-startup", 0 );
SetApplicationSettingInt( "nvhacks", "optimus-rename-exe", 0 );
SetApplicationSettingInt( "nvhacks", "optimus-export-enablement", 0 );
SetApplicationSettingInt( "nvhacks", "optimus-force-windowed", 0 );
}
}
示例11: CreateAppWindow
BOOL CreateAppWindow(const char* title, int width, int height, int bits, bool fullscreenflag)
{
windowWidth = width;
windowHeight = height;
windowName = title;
GLuint PixelFormat; // Holds The Results After Searching For A Match
WNDCLASS wc; // Windows Class Structure
DWORD dwExStyle; // Window Extended Style
DWORD dwStyle; // Window Style
RECT WindowRect; // Grabs Rectangle Upper Left / Lower Right Values
WindowRect.left=(long)0; // Set Left Value To 0
WindowRect.right=(long)width; // Set Right Value To Requested Width
WindowRect.top=(long)0; // Set Top Value To 0
WindowRect.bottom=(long)height; // Set Bottom Value To Requested Height
gFullscreen=fullscreenflag; // Set The Global Fullscreen Flag
HICON hIcon = (HICON)LoadImage(0,IDI_WINLOGO,IMAGE_ICON,0,0,LR_SHARED);
hInstance = GetModuleHandle(NULL); // Grab An Instance For Our Window
wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC; // Redraw On Size, And Own DC For Window.
wc.lpfnWndProc = (WNDPROC) WndProc; // WndProc Handles Messages
wc.cbClsExtra = 0; // No Extra Window Data
wc.cbWndExtra = 0; // No Extra Window Data
wc.hInstance = hInstance; // Set The Instance
wc.hIcon = 0;
wc.hCursor = LoadCursor(NULL, IDC_ARROW); // Load The Arrow Pointer
wc.hbrBackground = NULL; // No Background Required For GL
wc.lpszMenuName = NULL; // We Don't Want A Menu
wc.lpszClassName = "OpenGL"; // Set The Class Name
if (!RegisterClass(&wc)) // Attempt To Register The Window Class
{
MessageBox(NULL,"Failed To Register The Window Class.","ERROR",MB_OK|MB_ICONEXCLAMATION);
return FALSE; // Return FALSE
}
if (gFullscreen) // Attempt Fullscreen Mode?
{
DEVMODE dmScreenSettings; // Device Mode
memset(&dmScreenSettings,0,sizeof(dmScreenSettings)); // Makes Sure Memory's Cleared
dmScreenSettings.dmSize=sizeof(dmScreenSettings); // Size Of The Devmode Structure
dmScreenSettings.dmPelsWidth = width; // Selected Screen Width
dmScreenSettings.dmPelsHeight = height; // Selected Screen Height
dmScreenSettings.dmBitsPerPel = bits; // Selected Bits Per Pixel
dmScreenSettings.dmFields=DM_BITSPERPEL|DM_PELSWIDTH|DM_PELSHEIGHT;
// Try To Set Selected Mode And Get Results. NOTE: CDS_FULLSCREEN Gets Rid Of Start Bar.
if (ChangeDisplaySettings(&dmScreenSettings,CDS_FULLSCREEN)!=DISP_CHANGE_SUCCESSFUL)
{
// If The Mode Fails, Offer Two Options. Quit Or Use Windowed Mode.
if (MessageBox(NULL,"The Requested Fullscreen Mode Is Not Supported By\nYour Video Card. Use Windowed Mode Instead?","NeHe GL",MB_YESNO|MB_ICONEXCLAMATION)==IDYES)
{
gFullscreen=FALSE; // Windowed Mode Selected. Fullscreen = FALSE
}
else
{
// Pop Up A Message Box Letting User Know The Program Is Closing.
MessageBox(NULL,"Program Will Now Close.","ERROR",MB_OK|MB_ICONSTOP);
return FALSE; // Return FALSE
}
}
}
if (gFullscreen) // Are We Still In Fullscreen Mode?
{
dwExStyle=WS_EX_APPWINDOW; // Window Extended Style
dwStyle=WS_POPUP; // Windows Style
ShowCursor(FALSE); // Hide Mouse Pointer
}
else
{
dwExStyle=WS_EX_APPWINDOW | WS_EX_WINDOWEDGE; // Window Extended Style
dwStyle=WS_OVERLAPPEDWINDOW; // Windows Style
}
AdjustWindowRectEx(&WindowRect, dwStyle, FALSE, dwExStyle); // Adjust Window To True Requested Size
// Create The Window
if (!(hWnd=CreateWindowEx( dwExStyle, // Extended Style For The Window
"OpenGL", // Class Name
title, // Window Title
dwStyle | // Defined Window Style
WS_CLIPSIBLINGS | // Required Window Style
WS_CLIPCHILDREN, // Required Window Style
0, 0, // Window Position
WindowRect.right-WindowRect.left, // Calculate Window Width
WindowRect.bottom-WindowRect.top, // Calculate Window Height
NULL, // No Parent Window
NULL, // No Menu
hInstance, // Instance
NULL))) // Dont Pass Anything To WM_CREATE
{
CloseWindow(); // Reset The Display
MessageBox(NULL,"Window Creation Error.","ERROR",MB_OK|MB_ICONEXCLAMATION);
return FALSE; // Return FALSE
}
static PIXELFORMATDESCRIPTOR pfd= // pfd Tells Windows How We Want Things To Be
//.........这里部分代码省略.........
示例12: getProcessHandle
void* getProcessHandle() {
return (void*)GetModuleHandle(NULL);
}
示例13: getWindowsVersion
bool getWindowsVersion(char* version)
{
int index = 0;
OSVERSIONINFOEX osvi = {};
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
if (!GetVersionEx((OSVERSIONINFO*)&osvi))
return false;
if (osvi.dwPlatformId != VER_PLATFORM_WIN32_NT)
return false;
// Vista
if (osvi.dwMajorVersion == 6 && osvi.dwMinorVersion == 0)
{
if (osvi.wProductType == VER_NT_WORKSTATION)
{
index += sprintf(version + index, "Microsoft Windows Vista");
uint32_t productType = 0;
HMODULE hKernel = GetModuleHandle("KERNEL32.DLL");
if (hKernel)
{
typedef bool (*funcGetProductInfo)(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t*);
funcGetProductInfo pGetProductInfo = (funcGetProductInfo)GetProcAddress(hKernel, "GetProductInfo");
if (pGetProductInfo)
pGetProductInfo(6, 0, 0, 0, &productType);
switch (productType)
{
case PRODUCT_STARTER:
{
index += sprintf(version + index, " Starter");
break;
}
case PRODUCT_HOME_BASIC_N:
{
index += sprintf(version + index, " Home Basic N");
break;
}
case PRODUCT_HOME_BASIC:
{
index += sprintf(version + index, " Home Basic");
break;
}
case PRODUCT_HOME_PREMIUM:
{
index += sprintf(version + index, " Home Premium");
break;
}
case PRODUCT_BUSINESS_N:
{
index += sprintf(version + index, " Business N");
break;
}
case PRODUCT_BUSINESS:
{
index += sprintf(version + index, " Business");
break;
}
case PRODUCT_ENTERPRISE:
{
index += sprintf(version + index, " Enterprise");
break;
}
case PRODUCT_ULTIMATE:
{
index += sprintf(version + index, " Ultimate");
break;
}
default:
break;
}
}
}
else if (osvi.wProductType == VER_NT_SERVER)
{
index += sprintf(version + index, "Microsoft Windows Server 2008");
if (osvi.wSuiteMask & VER_SUITE_DATACENTER)
index += sprintf(version + index, " Datacenter Edition");
else if (osvi.wSuiteMask & VER_SUITE_ENTERPRISE)
index += sprintf(version + index, " Enterprise Edition");
else if (osvi.wSuiteMask == VER_SUITE_BLADE)
index += sprintf(version + index, " Web Edition");
else
index += sprintf(version + index, " Standard Edition");
}
}
// Windows Server 2003
else if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 2)
{
index += sprintf(version + index, "Microsoft Windows Server 2003");
if (GetSystemMetrics(SM_SERVERR2))
index += sprintf(version + index, " R2");
//.........这里部分代码省略.........
示例14: PTABDEF
PTABDEF OEMDEF::GetXdef(PGLOBAL g)
{
typedef PTABDEF (__stdcall *XGETDEF) (PGLOBAL, void *);
char c, getname[40] = "Get";
PTABDEF xdefp;
XGETDEF getdef = NULL;
PCATLG cat = Cat;
#if defined(WIN32)
// Is the DLL already loaded?
if (!Hdll && !(Hdll = GetModuleHandle(Module)))
// No, load the Dll implementing the function
if (!(Hdll = LoadLibrary(Module))) {
char buf[256];
DWORD rc = GetLastError();
sprintf(g->Message, MSG(DLL_LOAD_ERROR), rc, Module);
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS, NULL, rc, 0,
(LPTSTR)buf, sizeof(buf), NULL);
strcat(strcat(g->Message, ": "), buf);
return NULL;
} // endif hDll
// The exported name is always in uppercase
for (int i = 0; ; i++) {
c = Subtype[i];
getname[i + 3] = toupper(c);
if (!c) break;
} // endfor i
// Get the function returning an instance of the external DEF class
if (!(getdef = (XGETDEF)GetProcAddress((HINSTANCE)Hdll, getname))) {
sprintf(g->Message, MSG(PROCADD_ERROR), GetLastError(), getname);
FreeLibrary((HMODULE)Hdll);
return NULL;
} // endif getdef
#else // !WIN32
const char *error = NULL;
// Is the library already loaded?
// if (!Hdll && !(Hdll = ???))
// Load the desired shared library
if (!(Hdll = dlopen(Module, RTLD_LAZY))) {
error = dlerror();
sprintf(g->Message, MSG(SHARED_LIB_ERR), Module, SVP(error));
return NULL;
} // endif Hdll
// The exported name is always in uppercase
for (int i = 0; ; i++) {
c = Subtype[i];
getname[i + 3] = toupper(c);
if (!c) break;
} // endfor i
// Get the function returning an instance of the external DEF class
if (!(getdef = (XGETDEF)dlsym(Hdll, getname))) {
error = dlerror();
sprintf(g->Message, MSG(GET_FUNC_ERR), getname, SVP(error));
dlclose(Hdll);
return NULL;
} // endif getdef
#endif // !WIN32
// Just in case the external Get function does not set error messages
sprintf(g->Message, MSG(DEF_ALLOC_ERROR), Subtype);
// Get the table definition block
if (!(xdefp = getdef(g, NULL)))
return NULL;
// Have the external class do its complete definition
if (!cat->Cbuf) {
// Suballocate a temporary buffer for the entire column section
cat->Cblen = cat->GetSizeCatInfo("Colsize", "8K");
cat->Cbuf = (char*)PlugSubAlloc(g, NULL, cat->Cblen);
} // endif Cbuf
// Here "OEM" should be replace by a more useful value
if (xdefp->Define(g, cat, Name, "OEM"))
return NULL;
// Ok, return external block
return xdefp;
} // end of GetXdef
示例15: TCOD_sys_get_num_cores
int TCOD_sys_get_num_cores() {
#ifdef TCOD_WINDOWS
/* what a crap !!! works only on xp sp3 & vista */
typedef enum _PROCESSOR_CACHE_TYPE {
CacheUnified,
CacheInstruction,
CacheData,
CacheTrace
} PROCESSOR_CACHE_TYPE;
typedef struct _CACHE_DESCRIPTOR {
BYTE Level;
BYTE Associativity;
WORD LineSize;
DWORD Size;
PROCESSOR_CACHE_TYPE Type;
} CACHE_DESCRIPTOR,
*PCACHE_DESCRIPTOR;
typedef enum _LOGICAL_PROCESSOR_RELATIONSHIP {
RelationProcessorCore,
RelationNumaNode,
RelationCache,
RelationProcessorPackage
} LOGICAL_PROCESSOR_RELATIONSHIP;
typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION {
ULONG_PTR ProcessorMask;
LOGICAL_PROCESSOR_RELATIONSHIP Relationship;
union {
struct {
BYTE Flags;
} ProcessorCore;
struct {
DWORD NodeNumber;
} NumaNode;
CACHE_DESCRIPTOR Cache;
ULONGLONG Reserved[2];
};
} SYSTEM_LOGICAL_PROCESSOR_INFORMATION,
*PSYSTEM_LOGICAL_PROCESSOR_INFORMATION;
typedef BOOL (WINAPI *LPFN_GLPI)(
PSYSTEM_LOGICAL_PROCESSOR_INFORMATION,
PDWORD);
LPFN_GLPI glpi;
BOOL done = FALSE;
PSYSTEM_LOGICAL_PROCESSOR_INFORMATION buffer = NULL;
PSYSTEM_LOGICAL_PROCESSOR_INFORMATION ptr = NULL;
DWORD returnLength = 0;
DWORD logicalProcessorCount = 0;
DWORD byteOffset = 0;
glpi = (LPFN_GLPI) GetProcAddress(
GetModuleHandle(TEXT("kernel32")),
"GetLogicalProcessorInformation");
if (! glpi) {
return 1;
}
while (!done) {
DWORD rc = glpi(buffer, &returnLength);
if (FALSE == rc)
{
if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) {
if (buffer)
free(buffer);
buffer = (PSYSTEM_LOGICAL_PROCESSOR_INFORMATION)malloc(
returnLength);
if (NULL == buffer) {
return 1;
}
} else {
return 1;
}
} else {
done = TRUE;
}
}
ptr = buffer;
while (byteOffset + sizeof(SYSTEM_LOGICAL_PROCESSOR_INFORMATION) <= returnLength) {
switch (ptr->Relationship) {
case RelationProcessorCore:
/* A hyperthreaded core supplies more than one logical processor. */
logicalProcessorCount += CountSetBits(ptr->ProcessorMask);
break;
default: break;
}
byteOffset += sizeof(SYSTEM_LOGICAL_PROCESSOR_INFORMATION);
ptr++;
}
free(buffer);
return logicalProcessorCount;
#else
//.........这里部分代码省略.........