本文整理汇总了C++中LOWORD函数的典型用法代码示例。如果您正苦于以下问题:C++ LOWORD函数的具体用法?C++ LOWORD怎么用?C++ LOWORD使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了LOWORD函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: PtrToUlong
LRESULT CALLBACK BaseApp::wndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
LRESULT result = 0;
if (message == WM_CREATE)
{
LPCREATESTRUCT pcs = (LPCREATESTRUCT)lParam;
BaseApp *pBaseApp = (BaseApp *)pcs->lpCreateParams;
::SetWindowLongPtrW(
hwnd,
GWLP_USERDATA,
PtrToUlong(pBaseApp)
);
result = 1;
}
else
{
BaseApp *pBaseApp = reinterpret_cast<BaseApp *>(static_cast<LONG_PTR>(
::GetWindowLongPtrW(
hwnd,
GWLP_USERDATA
)));
bool wasHandled = false;
UINT width = LOWORD(lParam);
UINT height = HIWORD(lParam);
if (pBaseApp)
{
switch (message)
{
case WM_KEYDOWN:
pBaseApp->onKeyDown(wParam);
InvalidateRect(hwnd, NULL, FALSE);
break;
case WM_SIZE:
pBaseApp->onResize(width, height);
result = 0;
wasHandled = true;
break;
case WM_DISPLAYCHANGE:
InvalidateRect(hwnd, NULL, FALSE);
result = 0;
wasHandled = true;
break;
case WM_PAINT:
pBaseApp->onRender();
ValidateRect(hwnd, NULL);
result = 0;
wasHandled = true;
break;
case WM_DESTROY:
PostQuitMessage(0);
result = 1;
wasHandled = true;
break;
case WM_LBUTTONDOWN:
pBaseApp->onLButtonDown(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam), (DWORD)wParam);
break;
case WM_LBUTTONUP:
pBaseApp->onLButtonUp();
break;
case WM_MOUSEMOVE:
pBaseApp->onMouseMove(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam), (DWORD)wParam);
break;
}
}
if (!wasHandled)
{
result = DefWindowProc(hwnd, message, wParam, lParam);
}
}
return result;
}
示例2: WMSize
long WMSize (HWND hwnd, WPARAM wParam, LPARAM lParam){
MoveWindow (hwndEdit, 0, 0, LOWORD (lParam), HIWORD (lParam), TRUE);
return 0;
}
示例3: ACE_OS_TRACE
//.........这里部分代码省略.........
case PROCESSOR_ARCHITECTURE_AMD64:
ACE_OS::strcpy (processor, "x64");
ACE_OS::sprintf (subtype, "%d",
sinfo.wProcessorLevel);
break;
# endif
# if defined PROCESSOR_ARCHITECTURE_IA32_ON_WIN64
case PROCESSOR_ARCHITECTURE_IA32_ON_WIN64:
ACE_OS::strcpy (processor, "WOW64");
ACE_OS::sprintf (subtype, "%d",
sinfo.wProcessorLevel);
break;
# endif
# if defined PROCESSOR_ARCHITECTURE_ARM
case PROCESSOR_ARCHITECTURE_ARM:
ACE_OS::strcpy (processor, "ARM");
ACE_OS::sprintf (subtype, "%d",
sinfo.wProcessorLevel);
break;
# endif
case PROCESSOR_ARCHITECTURE_UNKNOWN:
default:
// @@ We could provide WinCE specific info here. But let's
// defer that to some later point.
ACE_OS::strcpy (processor, "Unknown");
break;
}
ACE_OS::sprintf (name->machine,
"%s %s",
processor, subtype);
}
else if (vinfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
{
if (vinfo.dwMajorVersion == 4 && vinfo.dwMinorVersion == 0)
{
ACE_OS::strcpy (name->release, "Windows 95");
if (vinfo.szCSDVersion[1] == ACE_TEXT('C'))
ACE_OS::strcat (name->release, " OSR2");
}
else if (vinfo.dwMajorVersion == 4 && vinfo.dwMinorVersion == 10)
{
ACE_OS::strcpy (name->release, "Windows 98");
if (vinfo.szCSDVersion[1] == ACE_TEXT('A'))
ACE_OS::strcat (name->release, " SE");
}
else if (vinfo.dwMajorVersion == 4 && vinfo.dwMinorVersion == 90)
{
ACE_OS::strcpy (name->release, "Windows Me");
}
else
{
ACE_OS::strcpy (name->release, unknown);
}
ACE_OS::sprintf (name->version, "%d", LOWORD (vinfo.dwBuildNumber));
if (sinfo.dwProcessorType == PROCESSOR_INTEL_386)
ACE_OS::strcpy (name->machine, "Intel 80386");
else if (sinfo.dwProcessorType == PROCESSOR_INTEL_486)
ACE_OS::strcpy (name->machine, "Intel 80486");
else if (sinfo.dwProcessorType == PROCESSOR_INTEL_PENTIUM)
ACE_OS::strcpy (name->machine, "Intel Pentium");
else
ACE_OS::strcpy (name->machine, unknown);
}
else
{
// We don't know what this is!
ACE_OS::strcpy (name->release, unknown);
ACE_OS::strcpy (name->version, unknown);
ACE_OS::strcpy (name->machine, unknown);
}
# if defined (ACE_LACKS_HOSTNAME)
return 0;
# else /* ACE_LACKS_HOSTNAME */
return ACE_OS::hostname (name->nodename, maxnamelen);
# endif /* ACE_LACKS_HOSTNAME */
#elif defined (ACE_VXWORKS)
size_t maxnamelen = sizeof name->nodename;
ACE_OS::strcpy (name->sysname, "VxWorks");
ACE_OS::strcpy (name->release, kernelVersion());
ACE_OS::strcpy (name->version, sysBspRev ());
ACE_OS::strcpy (name->machine, sysModel ());
return ACE_OS::hostname (name->nodename, maxnamelen);
#elif defined (INTEGRITY)
if (!name) {
errno = EFAULT;
return -1;
}
strcpy(name->sysname,"INTEGRITY");
int status = gethostname(name->nodename,_SYS_NMLN);
strcpy(name->release,"4.0");
strcpy(name->version,"4.0.9");
strcpy(name->machine,"a standard name");
return status;
#endif /* ACE_WIN32 */
}
示例4: wndProc
static LRESULT CALLBACK wndProc(HWND wnd, UINT message,
WPARAM wParam, LPARAM lParam)
{
int useDefWindowProc = 0;
JNIEnv *env = NULL;
jobject window = NULL;
BOOL isKeyDown = FALSE;
WindowUserData * wud;
#ifdef DEBUG_KEYS
if ( WM_KEYDOWN == message ) {
STD_PRINT("*** WindowsWindow: wndProc window %p, 0x%X %d/%d\n", wnd, message, (int)LOWORD(lParam), (int)HIWORD(lParam));
}
#endif
#if defined(UNDER_CE) || _MSC_VER <= 1200
wud = (WindowUserData *) GetWindowLong(wnd, GWL_USERDATA);
#else
wud = (WindowUserData *) GetWindowLongPtr(wnd, GWLP_USERDATA);
#endif
if(NULL==wud) {
return DefWindowProc(wnd, message, wParam, lParam);
}
env = wud->jenv;
window = wud->jinstance;
if (NULL==window || NULL==env) {
return DefWindowProc(wnd, message, wParam, lParam);
}
// DBG_PRINT("*** WindowsWindow: window %p -> %p, 0x%X %d/%d\n", wnd, window, message, (int)LOWORD(lParam), (int)HIWORD(lParam));
switch (message) {
//
// The signal pipeline for destruction is:
// Java::DestroyWindow(wnd) _or_ window-close-button ->
// WM_CLOSE -> Java::windowDestroyNotify -> W_DESTROY -> Java::windowDestroyed ->
// Java::CleanupWindowResources()
case WM_CLOSE:
(*env)->CallVoidMethod(env, window, windowDestroyNotifyID);
break;
case WM_DESTROY:
{
#if defined(UNDER_CE) || _MSC_VER <= 1200
SetWindowLong(wnd, GWL_USERDATA, (intptr_t) NULL);
#else
SetWindowLongPtr(wnd, GWLP_USERDATA, (intptr_t) NULL);
#endif
free(wud); wud=NULL;
(*env)->CallVoidMethod(env, window, windowDestroyedID);
(*env)->DeleteGlobalRef(env, window);
}
break;
case WM_SYSCHAR:
useDefWindowProc = WmChar(env, window, wParam,
LOWORD(lParam), HIWORD(lParam), FALSE);
break;
case WM_CHAR:
useDefWindowProc = WmChar(env, window, wParam,
LOWORD(lParam), HIWORD(lParam), TRUE);
break;
case WM_KEYDOWN:
#ifdef DEBUG_KEYS
STD_PRINT("*** WindowsWindow: windProc sending window %p -> %p, 0x%X %d/%d\n", wnd, window, message, (int)LOWORD(lParam), (int)HIWORD(lParam));
#endif
useDefWindowProc = WmKeyDown(env, window, wParam,
LOWORD(lParam), HIWORD(lParam), FALSE);
break;
case WM_KEYUP:
useDefWindowProc = WmKeyUp(env, window, wParam,
LOWORD(lParam), HIWORD(lParam), FALSE);
break;
case WM_SIZE:
WmSize(env, wnd, window, (UINT)wParam);
break;
case WM_SETTINGCHANGE:
if (wParam == SPI_SETNONCLIENTMETRICS) {
// make sure insets are updated, we don't need to resize the window
// because the size of the client area doesn't change
(void)UpdateInsets(env, wnd, window);
} else {
useDefWindowProc = 1;
}
break;
case WM_LBUTTONDOWN:
NewtWindows_requestFocus ( wnd ); // request focus on this window, if not already ..
(*env)->CallVoidMethod(env, window, sendMouseEventID,
(jint) EVENT_MOUSE_PRESSED,
GetModifiers(),
(jint) LOWORD(lParam), (jint) HIWORD(lParam),
//.........这里部分代码省略.........
示例5: GetWindowLong
BOOL CALLBACK VNCOptions::OptDlgProc( HWND hwnd, UINT uMsg,
WPARAM wParam, LPARAM lParam ) {
// This is a static method, so we don't know which instantiation we're
// dealing with. But we can get a pseudo-this from the parameter to
// WM_INITDIALOG, which we therafter store with the window and retrieve
// as follows:
VNCOptions *_this = (VNCOptions *) GetWindowLong(hwnd, GWL_USERDATA);
switch (uMsg) {
case WM_INITDIALOG:
{
SetWindowLong(hwnd, GWL_USERDATA, lParam);
_this = (VNCOptions *) lParam;
// Initialise the controls
HWND had = GetDlgItem(hwnd, IDC_AUTODETECT);
SendMessage(had, BM_SETCHECK, _this->autoDetect, 0);
for (int i = rfbEncodingRaw; i <= LASTENCODING; i++) {
HWND hPref = GetDlgItem(hwnd, IDC_RAWRADIO + (i-rfbEncodingRaw));
SendMessage(hPref, BM_SETCHECK,
(i== _this->m_PreferredEncoding), 0);
EnableWindow(hPref, _this->m_UseEnc[i] && !_this->autoDetect);
}
HWND hCopyRect = GetDlgItem(hwnd, ID_SESSION_SET_CRECT);
SendMessage(hCopyRect, BM_SETCHECK, _this->m_UseEnc[rfbEncodingCopyRect], 0);
EnableWindow(hCopyRect, !_this->autoDetect);
HWND hSwap = GetDlgItem(hwnd, ID_SESSION_SWAPMOUSE);
SendMessage(hSwap, BM_SETCHECK, _this->m_SwapMouse, 0);
HWND hDeiconify = GetDlgItem(hwnd, IDC_BELLDEICONIFY);
SendMessage(hDeiconify, BM_SETCHECK, _this->m_DeiconifyOnBell, 0);
#ifndef UNDER_CE
HWND hDisableClip = GetDlgItem(hwnd, IDC_DISABLECLIPBOARD);
SendMessage(hDisableClip, BM_SETCHECK, _this->m_DisableClipboard, 0);
#endif
HWND h8bit = GetDlgItem(hwnd, IDC_8BITCHECK);
SendMessage(h8bit, BM_SETCHECK, _this->m_Use8Bit, 0);
EnableWindow(h8bit, !_this->autoDetect);
HWND hShared = GetDlgItem(hwnd, IDC_SHARED);
SendMessage(hShared, BM_SETCHECK, _this->m_Shared, 0);
EnableWindow(hShared, !_this->m_running);
HWND hViewOnly = GetDlgItem(hwnd, IDC_VIEWONLY);
SendMessage(hViewOnly, BM_SETCHECK, _this->m_ViewOnly, 0);
HWND hScaling = GetDlgItem(hwnd, IDC_SCALING);
SendMessage(hScaling, BM_SETCHECK, _this->m_scaling, 0);
SetDlgItemInt( hwnd, IDC_SCALE_NUM, _this->m_scale_num, FALSE);
SetDlgItemInt( hwnd, IDC_SCALE_DEN, _this->m_scale_den, FALSE);
#ifndef UNDER_CE
HWND hFullScreen = GetDlgItem(hwnd, IDC_FULLSCREEN);
SendMessage(hFullScreen, BM_SETCHECK, _this->m_FullScreen, 0);
HWND hEmulate = GetDlgItem(hwnd, IDC_EMULATECHECK);
SendMessage(hEmulate, BM_SETCHECK, _this->m_Emul3Buttons, 0);
#endif
CentreWindow(hwnd);
return TRUE;
}
case WM_COMMAND:
switch (LOWORD(wParam)) {
case IDOK:
{
HWND had = GetDlgItem(hwnd, IDC_AUTODETECT);
_this->autoDetect =
(SendMessage(had, BM_GETCHECK, 0, 0) == BST_CHECKED);
for (int i = rfbEncodingRaw; i <= LASTENCODING; i++) {
HWND hPref = GetDlgItem(hwnd, IDC_RAWRADIO+i-rfbEncodingRaw);
if (SendMessage(hPref, BM_GETCHECK, 0, 0) == BST_CHECKED)
_this->m_PreferredEncoding = i;
}
HWND hCopyRect = GetDlgItem(hwnd, ID_SESSION_SET_CRECT);
_this->m_UseEnc[rfbEncodingCopyRect] =
(SendMessage(hCopyRect, BM_GETCHECK, 0, 0) == BST_CHECKED);
HWND hSwap = GetDlgItem(hwnd, ID_SESSION_SWAPMOUSE);
_this->m_SwapMouse =
(SendMessage(hSwap, BM_GETCHECK, 0, 0) == BST_CHECKED);
HWND hDeiconify = GetDlgItem(hwnd, IDC_BELLDEICONIFY);
_this->m_DeiconifyOnBell =
(SendMessage(hDeiconify, BM_GETCHECK, 0, 0) == BST_CHECKED);
#ifndef UNDER_CE
HWND hDisableClip = GetDlgItem(hwnd, IDC_DISABLECLIPBOARD);
_this->m_DisableClipboard =
//.........这里部分代码省略.........
示例6: winDialogBaseProc
static int winDialogBaseProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *result)
{
if (iupwinBaseContainerProc(ih, msg, wp, lp, result))
return 1;
iupwinMenuDialogProc(ih, msg, wp, lp);
switch (msg)
{
case WM_GETDLGCODE:
*result = DLGC_WANTALLKEYS;
return 1;
case WM_GETMINMAXINFO:
{
if (winDialogCheckMinMaxInfo(ih, (MINMAXINFO*)lp))
{
*result = 0;
return 1;
}
break;
}
case WM_SIZE:
{
if (ih->data->ignore_resize)
break;
switch(wp)
{
case SIZE_MINIMIZED:
{
if (ih->data->show_state != IUP_MINIMIZE)
{
IFni show_cb = (IFni)IupGetCallback(ih, "SHOW_CB");
if (show_cb && show_cb(ih, IUP_MINIMIZE) == IUP_CLOSE)
IupExitLoop();
ih->data->show_state = IUP_MINIMIZE;
}
break;
}
case SIZE_MAXIMIZED:
{
if (ih->data->show_state != IUP_MAXIMIZE)
{
IFni show_cb = (IFni)IupGetCallback(ih, "SHOW_CB");
if (show_cb && show_cb(ih, IUP_MAXIMIZE) == IUP_CLOSE)
IupExitLoop();
ih->data->show_state = IUP_MAXIMIZE;
}
winDialogResize(ih, LOWORD(lp), HIWORD(lp));
break;
}
case SIZE_RESTORED:
{
if (ih->data->show_state == IUP_MAXIMIZE || ih->data->show_state == IUP_MINIMIZE)
{
IFni show_cb = (IFni)IupGetCallback(ih, "SHOW_CB");
if (show_cb && show_cb(ih, IUP_RESTORE) == IUP_CLOSE)
IupExitLoop();
ih->data->show_state = IUP_RESTORE;
}
winDialogResize(ih, LOWORD(lp), HIWORD(lp));
break;
}
}
break;
}
case WM_USER+IWIN_TRAY_NOTIFICATION:
{
int dclick = 0;
int button = 0;
int pressed = 0;
switch (lp)
{
case WM_LBUTTONDOWN:
pressed = 1;
button = 1;
break;
case WM_MBUTTONDOWN:
pressed = 1;
button = 2;
break;
case WM_RBUTTONDOWN:
pressed = 1;
button = 3;
break;
case WM_LBUTTONDBLCLK:
dclick = 1;
button = 1;
break;
case WM_MBUTTONDBLCLK:
dclick = 1;
button = 2;
break;
case WM_RBUTTONDBLCLK:
dclick = 1;
button = 3;
//.........这里部分代码省略.........
示例7: vmdWindowProc
LRESULT WINAPI vmdWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {
PAINTSTRUCT ps; /* Paint structure. */
// XXX this enum has to be replicated here since its otherwise
// private to the DisplayDevice class and children.
enum EventCodes { WIN_REDRAW, WIN_LEFT, WIN_MIDDLE, WIN_RIGHT,
WIN_WHEELUP, WIN_WHEELDOWN, WIN_MOUSEX, WIN_MOUSEY,
WIN_KBD,
WIN_KBD_ESCAPE,
WIN_KBD_UP,
WIN_KBD_DOWN,
WIN_KBD_LEFT,
WIN_KBD_RIGHT,
WIN_KBD_PAGE_UP,
WIN_KBD_PAGE_DOWN,
WIN_KBD_HOME,
WIN_KBD_END,
WIN_KBD_INSERT,
WIN_KBD_DELETE,
WIN_KBD_F1, WIN_KBD_F2, WIN_KBD_F3, WIN_KBD_F4,
WIN_KBD_F5, WIN_KBD_F6, WIN_KBD_F7, WIN_KBD_F8,
WIN_KBD_F9, WIN_KBD_F10, WIN_KBD_F11, WIN_KBD_F12,
WIN_NOEVENT };
wgldata *glwsrv;
OpenGLDisplayDevice * ogldispdev;
// Upon first window creation, immediately set our user-data field
// to store caller-provided handles for this window instance
if (msg == WM_NCCREATE) {
#if defined(_M_X64) || defined(_WIN64) || defined(_Wp64)
SetWindowLongPtr(hwnd, GWLP_USERDATA, (LONG_PTR) (((CREATESTRUCT *) lParam)->lpCreateParams));
#else
SetWindowLong(hwnd, GWL_USERDATA, (LONG) (((CREATESTRUCT *) lParam)->lpCreateParams));
#endif
}
// check to make sure we have a valid window data structure in case
// it is destroyed while there are still pending messages...
#if defined(_M_X64) || defined(_WIN64) || defined(_Wp64)
ogldispdev = (OpenGLDisplayDevice *) GetWindowLongPtr(hwnd, GWLP_USERDATA);
#else
ogldispdev = (OpenGLDisplayDevice *) GetWindowLong(hwnd, GWL_USERDATA);
#endif
// when VMD destroys its window data structures it is possible that
// the window could still get messages briefly thereafter, this prevents
// us from attempting to handle any messages when the VMD state that goes
// with the window has already been destructed. (most notably when using
// the spaceball..) If we have a NULL pointer, let windows handle the
// event for us using the default window proc.
if (ogldispdev == NULL)
return DefWindowProc(hwnd, msg, wParam, lParam);
glwsrv = &ogldispdev->glwsrv;
#ifdef VMDSPACEWARE
// see if it is a spaceball event, if so do something about it.
if (vmd_processwin32spaceballevent(glwsrv, msg, wParam, lParam))
return 0; //
#endif
switch(msg) {
case WM_CREATE:
glwsrv->hWnd = hwnd;
glwsrv->hRC = SetupOpenGL(glwsrv);
glwsrv->WEvents = WIN_REDRAW;
return 0;
case WM_SIZE:
wglMakeCurrent(glwsrv->hDC, glwsrv->hRC);
ogldispdev->xSize = LOWORD(lParam);
ogldispdev->ySize = HIWORD(lParam);
ogldispdev->reshape();
glViewport(0, 0, (GLsizei) ogldispdev->xSize, (GLsizei) ogldispdev->ySize);
glwsrv->WEvents = WIN_REDRAW;
return 0;
case WM_SIZING:
wglMakeCurrent(glwsrv->hDC, glwsrv->hRC);
glClear(GL_COLOR_BUFFER_BIT);
SwapBuffers(glwsrv->hDC);
glDrawBuffer(GL_BACK);
return 0;
case WM_CLOSE:
PostQuitMessage(0);
return 0;
case WM_PAINT:
BeginPaint(hwnd, &ps);
EndPaint(hwnd, &ps);
glwsrv->WEvents = WIN_REDRAW;
return 0;
case WM_KEYDOWN:
glwsrv->KeyFlag = MapVirtualKey((UINT) wParam, 2); // map to ASCII
glwsrv->WEvents = WIN_KBD;
if (glwsrv->KeyFlag == 0) {
unsigned int keysym = wParam;
switch (keysym) {
//.........这里部分代码省略.........
示例8: switch
//Handle Select Mode dialog box
INT_PTR CALLBACK WINDOW::SelectModeProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_COMMAND:
{
switch (LOWORD(wParam))
{
case IDOK: //If OK was pressed
{
//Make changes to resolution
if(IsDlgButtonChecked(hWnd, IDC_640))
{
Instance()->width=640;
Instance()->height=480;
}
if(IsDlgButtonChecked(hWnd, IDC_800))
{
Instance()->width=800;
Instance()->height=600;
}
if(IsDlgButtonChecked(hWnd, IDC_1024))
{
Instance()->width=1024;
Instance()->height=768;
}
EndDialog(hWnd, wParam);
return true;
}
}
switch (HIWORD(wParam))
{
case BN_CLICKED: //If a button was pressed
{
CheckDlgButton(hWnd, lParam, BST_CHECKED);
//If it is the fullscreen button, change the variable
if((int)LOWORD(wParam) == IDC_FULLSCREEN)
Instance()->fullscreen=!Instance()->fullscreen;
//If it is an AA settings button, save the nuber of samples
if((int) LOWORD(wParam) == IDC_NOAA)
Instance()->numSamples=0;
for(int i=2; i<16; ++i)
{
if((int) LOWORD(wParam)==IDC_2AA+i-2)
Instance()->numSamples=i;
}
return true;
}
}
break;
}
case WM_INITDIALOG: //Initiate dialog box
{
//Set default resolution
if(Instance()->width==640)
CheckRadioButton(hWnd, IDC_640, IDC_1024, IDC_640);
if(Instance()->width==800)
CheckRadioButton(hWnd, IDC_640, IDC_1024, IDC_800);
if(Instance()->width==1024)
CheckRadioButton(hWnd, IDC_640, IDC_1024, IDC_1024);
//Set default full screen
if(Instance()->fullscreen)
CheckDlgButton(hWnd, IDC_FULLSCREEN, true);
//Grey out the unsupported AA modes
HWND buttonHWnd;
for(int i=2; i<=16; ++i)
{
//requires that 2AA - 16AA have sequential ID numbers
buttonHWnd=GetDlgItem(hWnd, IDC_2AA+(i-2));
EnableWindow(buttonHWnd, Instance()->samplesSupported[i]);
}
//Set default to no AA
CheckRadioButton(hWnd, IDC_NOAA, IDC_16AA, IDC_NOAA);
return true;
}
}
return false;
}
示例9: modData
static DWORD modData(MIDIMAPDATA* mom, DWORD_PTR dwParam)
{
BYTE lb = LOBYTE(LOWORD(dwParam));
WORD chn = lb & 0x0F;
DWORD ret = MMSYSERR_NOERROR;
if (MIDIMAP_IsBadData(mom))
return MMSYSERR_ERROR;
if (!mom->ChannelMap[chn]) return MMSYSERR_NOERROR;
switch (lb & 0xF0)
{
case 0x80:
case 0x90:
case 0xA0:
case 0xB0:
case 0xC0:
case 0xD0:
case 0xE0:
if (mom->ChannelMap[chn]->loaded == 0)
{
if (midiOutOpen(&mom->ChannelMap[chn]->hMidi, mom->ChannelMap[chn]->uDevID,
0L, 0L, CALLBACK_NULL) == MMSYSERR_NOERROR)
mom->ChannelMap[chn]->loaded = 1;
else
mom->ChannelMap[chn]->loaded = -1;
/* FIXME: should load here the IDF midi data... and allow channel and
* patch mappings
*/
}
if (mom->ChannelMap[chn]->loaded > 0)
{
/* change channel */
dwParam &= ~0x0F;
dwParam |= mom->ChannelMap[chn]->aChn[chn];
if ((LOBYTE(LOWORD(dwParam)) & 0xF0) == 0xC0 /* program change */ &&
mom->ChannelMap[chn]->lpbPatch)
{
BYTE patch = HIBYTE(LOWORD(dwParam));
/* change patch */
dwParam &= ~0x0000FF00;
dwParam |= mom->ChannelMap[chn]->lpbPatch[patch];
}
ret = midiOutShortMsg(mom->ChannelMap[chn]->hMidi, dwParam);
}
break;
case 0xF0:
for (chn = 0; chn < 16; chn++)
{
if (mom->ChannelMap[chn]->loaded > 0)
ret = midiOutShortMsg(mom->ChannelMap[chn]->hMidi, dwParam);
}
break;
default:
FIXME("ooch %lx\n", dwParam);
}
return ret;
}
示例10: gg_detailsdlgproc
//.........这里部分代码省略.........
SetValue(hwndDlg, IDC_LASTNAME, hContact, szProto, "LastName", SVS_NORMAL, hContact != NULL);
SetValue(hwndDlg, IDC_NICKNAME, hContact, szProto, "NickName", SVS_NORMAL, hContact != NULL);
SetValue(hwndDlg, IDC_BIRTHYEAR, hContact, szProto, "BirthYear", SVS_ZEROISUNSPEC, hContact != NULL);
SetValue(hwndDlg, IDC_CITY, hContact, szProto, "City", SVS_NORMAL, hContact != NULL);
SetValue(hwndDlg, IDC_FAMILYNAME, hContact, szProto, "FamilyName", SVS_NORMAL, hContact != NULL);
SetValue(hwndDlg, IDC_CITYORIGIN, hContact, szProto, "CityOrigin", SVS_NORMAL, hContact != NULL);
if (hContact)
{
SetValue(hwndDlg, IDC_GENDER, hContact, szProto, "Gender", SVS_GENDER, hContact != NULL);
SetValue(hwndDlg, IDC_STATUSDESCR, hContact, "CList", GG_KEY_STATUSDESCR, SVS_NORMAL, hContact != NULL);
}
else switch((char)DBGetContactSettingByte(hContact, GG_PROTO, "Gender", (BYTE)'?'))
{
case 'F':
SendDlgItemMessage(hwndDlg, IDC_GENDER, CB_SETCURSEL, 1, 0);
break;
case 'M':
SendDlgItemMessage(hwndDlg, IDC_GENDER, CB_SETCURSEL, 2, 0);
break;
default:
SendDlgItemMessage(hwndDlg, IDC_GENDER, CB_SETCURSEL, 0, 0);
}
// Disable when updating
if(dat) dat->disableUpdate = FALSE;
break;
}
}
break;
}
break;
case WM_COMMAND:
if (dat && !dat->hContact && LOWORD(wParam) == IDC_SAVE && HIWORD(wParam) == BN_CLICKED)
{
// Save user data
char text[256];
gg_pubdir50_t req;
GGPROTO *gg = dat->gg;
if (!gg_isonline(gg))
{
MessageBox(NULL,
Translate("You have to be logged in before you can change your details."),
GG_PROTONAME, MB_OK | MB_ICONSTOP
);
break;
}
EnableWindow(GetDlgItem(hwndDlg, IDC_SAVE), FALSE);
req = gg_pubdir50_new(GG_PUBDIR50_WRITE);
GetDlgItemText(hwndDlg, IDC_FIRSTNAME, text, sizeof(text));
if (strlen(text)) gg_pubdir50_add(req, GG_PUBDIR50_FIRSTNAME, text);
GetDlgItemText(hwndDlg, IDC_LASTNAME, text, sizeof(text));
if (strlen(text)) gg_pubdir50_add(req, GG_PUBDIR50_LASTNAME, text);
GetDlgItemText(hwndDlg, IDC_NICKNAME, text, sizeof(text));
if (strlen(text)) gg_pubdir50_add(req, GG_PUBDIR50_NICKNAME, text);
GetDlgItemText(hwndDlg, IDC_CITY, text, sizeof(text));
if (strlen(text)) gg_pubdir50_add(req, GG_PUBDIR50_CITY, text);
// Gadu-Gadu Female <-> Male
示例11: gg_acc_mgr_guidlgproc
////////////////////////////////////////////////////////////////////////////////////////////
// Proc: Account manager options dialog
INT_PTR CALLBACK gg_acc_mgr_guidlgproc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
////////////////////////////////////////////////////////////////////////////////////////////
{
switch (msg) {
case WM_INITDIALOG:
{
DBVARIANT dbv;
DWORD num;
GGPROTO *gg = (GGPROTO *)lParam;
SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)lParam);
TranslateDialogDefault(hwndDlg);
if (num = DBGetContactSettingDword(NULL, GG_PROTO, GG_KEY_UIN, 0))
SetDlgItemText(hwndDlg, IDC_UIN, ditoa(num));
if (!DBGetContactSettingString(NULL, GG_PROTO, GG_KEY_PASSWORD, &dbv)) {
CallService(MS_DB_CRYPT_DECODESTRING, strlen(dbv.pszVal) + 1, (LPARAM) dbv.pszVal);
SetDlgItemText(hwndDlg, IDC_PASSWORD, dbv.pszVal);
DBFreeVariant(&dbv);
}
if (!DBGetContactSettingString(NULL, GG_PROTO, GG_KEY_EMAIL, &dbv)) {
SetDlgItemText(hwndDlg, IDC_EMAIL, dbv.pszVal);
DBFreeVariant(&dbv);
}
break;
}
case WM_COMMAND:
{
switch (LOWORD(wParam)) {
case IDC_CREATEACCOUNT:
{
// Readup data
GGUSERUTILDLGDATA dat;
int ret;
char pass[128], email[128];
GGPROTO *gg = (GGPROTO *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
GetDlgItemText(hwndDlg, IDC_UIN, pass, sizeof(pass));
dat.uin = atoi(pass);
GetDlgItemText(hwndDlg, IDC_PASSWORD, pass, sizeof(pass));
GetDlgItemText(hwndDlg, IDC_EMAIL, email, sizeof(email));
dat.pass = pass;
dat.email = email;
dat.gg = gg;
dat.mode = GG_USERUTIL_CREATE;
ret = DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_CREATEACCOUNT), hwndDlg, gg_userutildlgproc, (LPARAM)&dat);
if(ret == IDOK)
{
DBVARIANT dbv;
DWORD num;
GGPROTO *gg = (GGPROTO *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
// Show reload required window
ShowWindow(GetDlgItem(hwndDlg, IDC_RELOADREQD), SW_SHOW);
// Update uin
if (num = DBGetContactSettingDword(NULL, GG_PROTO, GG_KEY_UIN, 0))
SetDlgItemText(hwndDlg, IDC_UIN, ditoa(num));
else
SetDlgItemText(hwndDlg, IDC_UIN, "");
// Update password
if (!DBGetContactSettingString(NULL, GG_PROTO, GG_KEY_PASSWORD, &dbv)) {
CallService(MS_DB_CRYPT_DECODESTRING, strlen(dbv.pszVal) + 1, (LPARAM) dbv.pszVal);
SetDlgItemText(hwndDlg, IDC_PASSWORD, dbv.pszVal);
DBFreeVariant(&dbv);
}
else
SetDlgItemText(hwndDlg, IDC_PASSWORD, "");
// Update e-mail
if (!DBGetContactSettingString(NULL, GG_PROTO, GG_KEY_EMAIL, &dbv)) {
SetDlgItemText(hwndDlg, IDC_EMAIL, dbv.pszVal);
DBFreeVariant(&dbv);
}
else
SetDlgItemText(hwndDlg, IDC_EMAIL, "");
}
}
}
break;
}
case WM_NOTIFY:
{
switch(((LPNMHDR)lParam)->idFrom)
{
case 0:
switch (((LPNMHDR) lParam)->code) {
case PSN_APPLY:
{
GGPROTO *gg = (GGPROTO *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
char str[128];
uin_t uin;
// Write Gadu-Gadu number & password
GetDlgItemText(hwndDlg, IDC_UIN, str, sizeof(str));
uin = atoi(str);
GetDlgItemText(hwndDlg, IDC_PASSWORD, str, sizeof(str));
CallService(MS_DB_CRYPT_ENCODESTRING, sizeof(str), (LPARAM) str);
//.........这里部分代码省略.........
示例12: gg_advoptsdlgproc
////////////////////////////////////////////////////////////////////////////////////////////
// Proc: Advanced options dialog
static INT_PTR CALLBACK gg_advoptsdlgproc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg) {
case WM_INITDIALOG:
{
DBVARIANT dbv;
DWORD num;
GGPROTO *gg = (GGPROTO *)lParam;
SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)lParam);
TranslateDialogDefault(hwndDlg);
if (!DBGetContactSettingString(NULL, GG_PROTO, GG_KEY_SERVERHOSTS, &dbv)) {
SetDlgItemText(hwndDlg, IDC_HOST, dbv.pszVal);
DBFreeVariant(&dbv);
}
else
SetDlgItemText(hwndDlg, IDC_HOST, GG_KEYDEF_SERVERHOSTS);
CheckDlgButton(hwndDlg, IDC_KEEPALIVE, DBGetContactSettingByte(NULL, GG_PROTO, GG_KEY_KEEPALIVE, GG_KEYDEF_KEEPALIVE));
CheckDlgButton(hwndDlg, IDC_SHOWCERRORS, DBGetContactSettingByte(NULL, GG_PROTO, GG_KEY_SHOWCERRORS, GG_KEYDEF_SHOWCERRORS));
CheckDlgButton(hwndDlg, IDC_ARECONNECT, DBGetContactSettingByte(NULL, GG_PROTO, GG_KEY_ARECONNECT, GG_KEYDEF_ARECONNECT));
CheckDlgButton(hwndDlg, IDC_MSGACK, DBGetContactSettingByte(NULL, GG_PROTO, GG_KEY_MSGACK, GG_KEYDEF_MSGACK));
CheckDlgButton(hwndDlg, IDC_MANUALHOST, DBGetContactSettingByte(NULL, GG_PROTO, GG_KEY_MANUALHOST, GG_KEYDEF_MANUALHOST));
CheckDlgButton(hwndDlg, IDC_SSLCONN, DBGetContactSettingByte(NULL, GG_PROTO, GG_KEY_SSLCONN, GG_KEYDEF_SSLCONN));
EnableWindow(GetDlgItem(hwndDlg, IDC_HOST), IsDlgButtonChecked(hwndDlg, IDC_MANUALHOST));
EnableWindow(GetDlgItem(hwndDlg, IDC_PORT), IsDlgButtonChecked(hwndDlg, IDC_MANUALHOST));
CheckDlgButton(hwndDlg, IDC_DIRECTCONNS, DBGetContactSettingByte(NULL, GG_PROTO, GG_KEY_DIRECTCONNS, GG_KEYDEF_DIRECTCONNS));
if (num = DBGetContactSettingWord(NULL, GG_PROTO, GG_KEY_DIRECTPORT, GG_KEYDEF_DIRECTPORT))
SetDlgItemText(hwndDlg, IDC_DIRECTPORT, ditoa(num));
CheckDlgButton(hwndDlg, IDC_FORWARDING, DBGetContactSettingByte(NULL, GG_PROTO, GG_KEY_FORWARDING, GG_KEYDEF_FORWARDING));
if (!DBGetContactSettingString(NULL, GG_PROTO, GG_KEY_FORWARDHOST, &dbv)) {
SetDlgItemText(hwndDlg, IDC_FORWARDHOST, dbv.pszVal);
DBFreeVariant(&dbv);
}
if (num = DBGetContactSettingWord(NULL, GG_PROTO, GG_KEY_FORWARDPORT, GG_KEYDEF_FORWARDPORT))
SetDlgItemText(hwndDlg, IDC_FORWARDPORT, ditoa(num));
EnableWindow(GetDlgItem(hwndDlg, IDC_DIRECTPORT), IsDlgButtonChecked(hwndDlg, IDC_DIRECTCONNS));
EnableWindow(GetDlgItem(hwndDlg, IDC_FORWARDING), IsDlgButtonChecked(hwndDlg, IDC_DIRECTCONNS));
EnableWindow(GetDlgItem(hwndDlg, IDC_FORWARDPORT), IsDlgButtonChecked(hwndDlg, IDC_FORWARDING) && IsDlgButtonChecked(hwndDlg, IDC_DIRECTCONNS));
EnableWindow(GetDlgItem(hwndDlg, IDC_FORWARDHOST), IsDlgButtonChecked(hwndDlg, IDC_FORWARDING) && IsDlgButtonChecked(hwndDlg, IDC_DIRECTCONNS));
break;
}
case WM_COMMAND:
{
if ((LOWORD(wParam) == IDC_DIRECTPORT || LOWORD(wParam) == IDC_FORWARDHOST || LOWORD(wParam) == IDC_FORWARDPORT)
&& (HIWORD(wParam) != EN_CHANGE || (HWND) lParam != GetFocus()))
return 0;
switch (LOWORD(wParam)) {
case IDC_MANUALHOST:
{
EnableWindow(GetDlgItem(hwndDlg, IDC_HOST), IsDlgButtonChecked(hwndDlg, IDC_MANUALHOST));
EnableWindow(GetDlgItem(hwndDlg, IDC_PORT), IsDlgButtonChecked(hwndDlg, IDC_MANUALHOST));
ShowWindow(GetDlgItem(hwndDlg, IDC_RELOADREQD), SW_SHOW);
break;
}
case IDC_DIRECTCONNS:
case IDC_FORWARDING:
{
EnableWindow(GetDlgItem(hwndDlg, IDC_DIRECTPORT), IsDlgButtonChecked(hwndDlg, IDC_DIRECTCONNS));
EnableWindow(GetDlgItem(hwndDlg, IDC_FORWARDING), IsDlgButtonChecked(hwndDlg, IDC_DIRECTCONNS));
EnableWindow(GetDlgItem(hwndDlg, IDC_FORWARDPORT), IsDlgButtonChecked(hwndDlg, IDC_FORWARDING) && IsDlgButtonChecked(hwndDlg, IDC_DIRECTCONNS));
EnableWindow(GetDlgItem(hwndDlg, IDC_FORWARDHOST), IsDlgButtonChecked(hwndDlg, IDC_FORWARDING) && IsDlgButtonChecked(hwndDlg, IDC_DIRECTCONNS));
ShowWindow(GetDlgItem(hwndDlg, IDC_RELOADREQD), SW_SHOW);
break;
}
}
SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
break;
}
case WM_NOTIFY:
{
switch (((LPNMHDR) lParam)->code) {
case PSN_APPLY:
{
char str[512];
GGPROTO *gg = (GGPROTO *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
DBWriteContactSettingByte(NULL, GG_PROTO, GG_KEY_KEEPALIVE, (BYTE) IsDlgButtonChecked(hwndDlg, IDC_KEEPALIVE));
DBWriteContactSettingByte(NULL, GG_PROTO, GG_KEY_SHOWCERRORS, (BYTE) IsDlgButtonChecked(hwndDlg, IDC_SHOWCERRORS));
DBWriteContactSettingByte(NULL, GG_PROTO, GG_KEY_ARECONNECT, (BYTE) IsDlgButtonChecked(hwndDlg, IDC_ARECONNECT));
DBWriteContactSettingByte(NULL, GG_PROTO, GG_KEY_MSGACK, (BYTE) IsDlgButtonChecked(hwndDlg, IDC_MSGACK));
DBWriteContactSettingByte(NULL, GG_PROTO, GG_KEY_MANUALHOST, (BYTE) IsDlgButtonChecked(hwndDlg, IDC_MANUALHOST));
DBWriteContactSettingByte(NULL, GG_PROTO, GG_KEY_SSLCONN, (BYTE) IsDlgButtonChecked(hwndDlg, IDC_SSLCONN));
// Transfer settings
DBWriteContactSettingByte(NULL, GG_PROTO, GG_KEY_DIRECTCONNS, (BYTE) IsDlgButtonChecked(hwndDlg, IDC_DIRECTCONNS));
DBWriteContactSettingByte(NULL, GG_PROTO, GG_KEY_FORWARDING, (BYTE) IsDlgButtonChecked(hwndDlg, IDC_FORWARDING));
// Write custom servers
GetDlgItemText(hwndDlg, IDC_HOST, str, sizeof(str));
DBWriteContactSettingString(NULL, GG_PROTO, GG_KEY_SERVERHOSTS, str);
// Write direct port
GetDlgItemText(hwndDlg, IDC_DIRECTPORT, str, sizeof(str));
DBWriteContactSettingWord(NULL, GG_PROTO, GG_KEY_DIRECTPORT, (WORD)atoi(str));
// Write forwarding host
//.........这里部分代码省略.........
示例13: gg_confoptsdlgproc
////////////////////////////////////////////////////////////////////////////////////////////
// Proc: Conference options dialog
static INT_PTR CALLBACK gg_confoptsdlgproc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg) {
case WM_INITDIALOG:
{
DWORD num;
GGPROTO *gg = (GGPROTO *)lParam;
SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)lParam);
TranslateDialogDefault(hwndDlg);
SendDlgItemMessage(hwndDlg, IDC_GC_POLICY_TOTAL, CB_ADDSTRING, 0, (LPARAM)Translate("Allow"));
SendDlgItemMessage(hwndDlg, IDC_GC_POLICY_TOTAL, CB_ADDSTRING, 0, (LPARAM)Translate("Ask"));
SendDlgItemMessage(hwndDlg, IDC_GC_POLICY_TOTAL, CB_ADDSTRING, 0, (LPARAM)Translate("Ignore"));
SendDlgItemMessage(hwndDlg, IDC_GC_POLICY_TOTAL, CB_SETCURSEL,
DBGetContactSettingWord(NULL, GG_PROTO, GG_KEY_GC_POLICY_TOTAL, GG_KEYDEF_GC_POLICY_TOTAL), 0);
if (num = DBGetContactSettingWord(NULL, GG_PROTO, GG_KEY_GC_COUNT_TOTAL, GG_KEYDEF_GC_COUNT_TOTAL))
SetDlgItemText(hwndDlg, IDC_GC_COUNT_TOTAL, ditoa(num));
SendDlgItemMessage(hwndDlg, IDC_GC_POLICY_UNKNOWN, CB_ADDSTRING, 0, (LPARAM)Translate("Allow"));
SendDlgItemMessage(hwndDlg, IDC_GC_POLICY_UNKNOWN, CB_ADDSTRING, 0, (LPARAM)Translate("Ask"));
SendDlgItemMessage(hwndDlg, IDC_GC_POLICY_UNKNOWN, CB_ADDSTRING, 0, (LPARAM)Translate("Ignore"));
SendDlgItemMessage(hwndDlg, IDC_GC_POLICY_UNKNOWN, CB_SETCURSEL,
DBGetContactSettingWord(NULL, GG_PROTO, GG_KEY_GC_POLICY_UNKNOWN, GG_KEYDEF_GC_POLICY_UNKNOWN), 0);
if (num = DBGetContactSettingWord(NULL, GG_PROTO, GG_KEY_GC_COUNT_UNKNOWN, GG_KEYDEF_GC_COUNT_UNKNOWN))
SetDlgItemText(hwndDlg, IDC_GC_COUNT_UNKNOWN, ditoa(num));
SendDlgItemMessage(hwndDlg, IDC_GC_POLICY_DEFAULT, CB_ADDSTRING, 0, (LPARAM)Translate("Allow"));
SendDlgItemMessage(hwndDlg, IDC_GC_POLICY_DEFAULT, CB_ADDSTRING, 0, (LPARAM)Translate("Ask"));
SendDlgItemMessage(hwndDlg, IDC_GC_POLICY_DEFAULT, CB_ADDSTRING, 0, (LPARAM)Translate("Ignore"));
SendDlgItemMessage(hwndDlg, IDC_GC_POLICY_DEFAULT, CB_SETCURSEL,
DBGetContactSettingWord(NULL, GG_PROTO, GG_KEY_GC_POLICY_DEFAULT, GG_KEYDEF_GC_POLICY_DEFAULT), 0);
break;
}
case WM_COMMAND:
{
if ((LOWORD(wParam) == IDC_GC_COUNT_TOTAL || LOWORD(wParam) == IDC_GC_COUNT_UNKNOWN)
&& (HIWORD(wParam) != EN_CHANGE || (HWND) lParam != GetFocus()))
return 0;
SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
break;
}
case WM_NOTIFY:
{
switch (((LPNMHDR) lParam)->code) {
case PSN_APPLY:
{
char str[128];
GGPROTO *gg = (GGPROTO *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
// Write groupchat policy
DBWriteContactSettingWord(NULL, GG_PROTO, GG_KEY_GC_POLICY_TOTAL,
(WORD)SendDlgItemMessage(hwndDlg, IDC_GC_POLICY_TOTAL, CB_GETCURSEL, 0, 0));
DBWriteContactSettingWord(NULL, GG_PROTO, GG_KEY_GC_POLICY_UNKNOWN,
(WORD)SendDlgItemMessage(hwndDlg, IDC_GC_POLICY_UNKNOWN, CB_GETCURSEL, 0, 0));
DBWriteContactSettingWord(NULL, GG_PROTO, GG_KEY_GC_POLICY_DEFAULT,
(WORD)SendDlgItemMessage(hwndDlg, IDC_GC_POLICY_DEFAULT, CB_GETCURSEL, 0, 0));
GetDlgItemText(hwndDlg, IDC_GC_COUNT_TOTAL, str, sizeof(str));
DBWriteContactSettingWord(NULL, GG_PROTO, GG_KEY_GC_COUNT_TOTAL, (WORD)atoi(str));
GetDlgItemText(hwndDlg, IDC_GC_COUNT_UNKNOWN, str, sizeof(str));
DBWriteContactSettingWord(NULL, GG_PROTO, GG_KEY_GC_COUNT_UNKNOWN, (WORD)atoi(str));
break;
}
}
break;
}
}
return FALSE;
}
示例14: gg_genoptsdlgproc
////////////////////////////////////////////////////////////////////////////////////////////
// Proc: General options dialog
static INT_PTR CALLBACK gg_genoptsdlgproc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg) {
case WM_INITDIALOG:
{
DBVARIANT dbv;
DWORD num;
GGPROTO *gg = (GGPROTO *)lParam;
SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)lParam);
TranslateDialogDefault(hwndDlg);
if (num = DBGetContactSettingDword(NULL, GG_PROTO, GG_KEY_UIN, 0))
{
SetDlgItemText(hwndDlg, IDC_UIN, ditoa(num));
ShowWindow(GetDlgItem(hwndDlg, IDC_CREATEACCOUNT), SW_HIDE);
}
else
{
ShowWindow(GetDlgItem(hwndDlg, IDC_CHPASS), SW_HIDE);
ShowWindow(GetDlgItem(hwndDlg, IDC_REMOVEACCOUNT), SW_HIDE);
ShowWindow(GetDlgItem(hwndDlg, IDC_LOSTPASS), SW_HIDE);
}
if (!DBGetContactSettingString(NULL, GG_PROTO, GG_KEY_PASSWORD, &dbv)) {
CallService(MS_DB_CRYPT_DECODESTRING, strlen(dbv.pszVal) + 1, (LPARAM) dbv.pszVal);
SetDlgItemText(hwndDlg, IDC_PASSWORD, dbv.pszVal);
DBFreeVariant(&dbv);
}
if (!DBGetContactSettingString(NULL, GG_PROTO, GG_KEY_EMAIL, &dbv)) {
SetDlgItemText(hwndDlg, IDC_EMAIL, dbv.pszVal);
DBFreeVariant(&dbv);
}
else
{
ShowWindow(GetDlgItem(hwndDlg, IDC_LOSTPASS), SW_HIDE);
ShowWindow(GetDlgItem(hwndDlg, IDC_CHPASS), SW_HIDE);
}
CheckDlgButton(hwndDlg, IDC_FRIENDSONLY, DBGetContactSettingByte(NULL, GG_PROTO, GG_KEY_FRIENDSONLY, GG_KEYDEF_FRIENDSONLY));
CheckDlgButton(hwndDlg, IDC_SHOWINVISIBLE, DBGetContactSettingByte(NULL, GG_PROTO, GG_KEY_SHOWINVISIBLE, GG_KEYDEF_SHOWINVISIBLE));
CheckDlgButton(hwndDlg, IDC_LEAVESTATUSMSG, DBGetContactSettingByte(NULL, GG_PROTO, GG_KEY_LEAVESTATUSMSG, GG_KEYDEF_LEAVESTATUSMSG));
if(gg->gc_enabled)
CheckDlgButton(hwndDlg, IDC_IGNORECONF, DBGetContactSettingByte(NULL, GG_PROTO, GG_KEY_IGNORECONF, GG_KEYDEF_IGNORECONF));
else
{
EnableWindow(GetDlgItem(hwndDlg, IDC_IGNORECONF), FALSE);
CheckDlgButton(hwndDlg, IDC_IGNORECONF, TRUE);
}
CheckDlgButton(hwndDlg, IDC_IMGRECEIVE, DBGetContactSettingByte(NULL, GG_PROTO, GG_KEY_IMGRECEIVE, GG_KEYDEF_IMGRECEIVE));
CheckDlgButton(hwndDlg, IDC_SHOWLINKS, DBGetContactSettingByte(NULL, GG_PROTO, GG_KEY_SHOWLINKS, GG_KEYDEF_SHOWLINKS));
CheckDlgButton(hwndDlg, IDC_ENABLEAVATARS, DBGetContactSettingByte(NULL, GG_PROTO, GG_KEY_ENABLEAVATARS, GG_KEYDEF_ENABLEAVATARS));
EnableWindow(GetDlgItem(hwndDlg, IDC_LEAVESTATUS), IsDlgButtonChecked(hwndDlg, IDC_LEAVESTATUSMSG));
EnableWindow(GetDlgItem(hwndDlg, IDC_IMGMETHOD), IsDlgButtonChecked(hwndDlg, IDC_IMGRECEIVE));
SendDlgItemMessage(hwndDlg, IDC_LEAVESTATUS, CB_ADDSTRING, 0, (LPARAM)Translate("<Last Status>")); // 0
SendDlgItemMessage(hwndDlg, IDC_LEAVESTATUS, CB_ADDSTRING, 0, (LPARAM)Translate("Online")); // ID_STATUS_ONLINE
SendDlgItemMessage(hwndDlg, IDC_LEAVESTATUS, CB_ADDSTRING, 0, (LPARAM)Translate("Away")); // ID_STATUS_AWAY
SendDlgItemMessage(hwndDlg, IDC_LEAVESTATUS, CB_ADDSTRING, 0, (LPARAM)Translate("DND")); // ID_STATUS_DND
SendDlgItemMessage(hwndDlg, IDC_LEAVESTATUS, CB_ADDSTRING, 0, (LPARAM)Translate("Free for chat")); // ID_STATUS_FREECHAT
SendDlgItemMessage(hwndDlg, IDC_LEAVESTATUS, CB_ADDSTRING, 0, (LPARAM)Translate("Invisible")); // ID_STATUS_INVISIBLE
switch(DBGetContactSettingWord(NULL, GG_PROTO, GG_KEY_LEAVESTATUS, GG_KEYDEF_LEAVESTATUS))
{
case ID_STATUS_ONLINE:
SendDlgItemMessage(hwndDlg, IDC_LEAVESTATUS, CB_SETCURSEL, 1, 0);
break;
case ID_STATUS_AWAY:
SendDlgItemMessage(hwndDlg, IDC_LEAVESTATUS, CB_SETCURSEL, 2, 0);
break;
case ID_STATUS_DND:
SendDlgItemMessage(hwndDlg, IDC_LEAVESTATUS, CB_SETCURSEL, 3, 0);
break;
case ID_STATUS_FREECHAT:
SendDlgItemMessage(hwndDlg, IDC_LEAVESTATUS, CB_SETCURSEL, 4, 0);
break;
case ID_STATUS_INVISIBLE:
SendDlgItemMessage(hwndDlg, IDC_LEAVESTATUS, CB_SETCURSEL, 5, 0);
break;
default:
SendDlgItemMessage(hwndDlg, IDC_LEAVESTATUS, CB_SETCURSEL, 0, 0);
}
SendDlgItemMessage(hwndDlg, IDC_IMGMETHOD, CB_ADDSTRING, 0, (LPARAM)Translate("System tray icon"));
SendDlgItemMessage(hwndDlg, IDC_IMGMETHOD, CB_ADDSTRING, 0, (LPARAM)Translate("Popup window"));
SendDlgItemMessage(hwndDlg, IDC_IMGMETHOD, CB_ADDSTRING, 0, (LPARAM)Translate("Message with [img] BBCode"));
SendDlgItemMessage(hwndDlg, IDC_IMGMETHOD, CB_SETCURSEL,
DBGetContactSettingByte(NULL, GG_PROTO, GG_KEY_IMGMETHOD, GG_KEYDEF_IMGMETHOD), 0);
break;
}
case WM_COMMAND:
{
if ((LOWORD(wParam) == IDC_UIN || LOWORD(wParam) == IDC_PASSWORD || LOWORD(wParam) == IDC_EMAIL)
&& (HIWORD(wParam) != EN_CHANGE || (HWND) lParam != GetFocus()))
return 0;
switch (LOWORD(wParam)) {
case IDC_EMAIL:
case IDC_UIN:
{
gg_optsdlgcheck(hwndDlg);
break;
//.........这里部分代码省略.........
示例15: WinProc
LRESULT CALLBACK WinProc(HWND hWnd,UINT uMsg, WPARAM wParam, LPARAM lParam)
{
LONG lRet = 0;
PAINTSTRUCT ps;
switch (uMsg)
{
case WM_SIZE: // If the window is resized
if(!g_bFullScreen) // Do this only if we are NOT in full screen
{
SizeOpenGLScreen(LOWORD(lParam),HIWORD(lParam));// LoWord=Width, HiWord=Height
GetClientRect(hWnd, &g_rRect); // Get the window rectangle
}
break;
case WM_PAINT: // If we need to repaint the scene
BeginPaint(hWnd, &ps); // Init the paint struct
EndPaint(hWnd, &ps); // EndPaint, Clean up
break;
/////// * /////////// * /////////// * NEW * /////// * /////////// * /////////// *
// Below we check what the user types in. If they use the arrow keys
// then we want to move the triangle around (LEFT RIGHT UP and DOWN keys)
case WM_KEYDOWN:
switch(wParam)
{
case VK_ESCAPE: // Check if we hit the ESCAPE key.
PostQuitMessage(0); // Tell windows we want to quit
break;
case VK_UP: // Check if we hit the UP ARROW key.
vTriangle[0].x += 0.01f; // Move the left point of the triangle to the left
vTriangle[1].x += 0.01f; // Move the right point of the triangle to the left
vTriangle[2].x += 0.01f; // Move the top point of the triangle to the left
break;
case VK_DOWN: // Check if we hit the DOWN ARROW key.
vTriangle[0].x -= 0.01f; // Move the left point of the triangle to the left
vTriangle[1].x -= 0.01f; // Move the right point of the triangle to the left
vTriangle[2].x -= 0.01f; // Move the top point of the triangle to the left
break;
case VK_LEFT: // Check if we hit the LEFT ARROW key.
vTriangle[0].z -= 0.01f; // Move the left point of the triangle back
vTriangle[1].z -= 0.01f; // Move the right point of the triangle back
vTriangle[2].z -= 0.01f; // Move the top point of the triangle back
break;
case VK_RIGHT: // Check if we hit the RIGHT ARROW key.
vTriangle[0].z += 0.01f; // Move the left point of the triangle forward
vTriangle[1].z += 0.01f; // Move the right point of the triangle forward
vTriangle[2].z += 0.01f; // Move the top point of the triangle forward
break;
}
break;
/////// * /////////// * /////////// * NEW * /////// * /////////// * /////////// *
case WM_CLOSE: // If the window is closed
PostQuitMessage(0); // Tell windows we want to quit
break;
default: // Return by default
lRet = DefWindowProc (hWnd, uMsg, wParam, lParam);
break;
}
return lRet; // Return by default
}