|
|
#include <windows.h>
#include <cpl.h>
//
// Marks code that will need to be modified if this module is ever
// incorporated into MAIN.CPL instead of being a separate applet.
//
#define NOTINMAIN
#ifdef NOTINMAIN
#include "..\main\cphelp.h" //For the help id's.
#endif //NOTINMAIN
#include "cursors.h"
#define szPREVIEW "SPreviewWndClass"
HANDLE ghmod; int gcxCursor, gcyCursor;
LONG APIENTRY CPlApplet( HWND hwnd, WORD message, DWORD wParam, LONG lParam) { LPCPLINFO lpCPlInfo; LPNEWCPLINFO lpNCPlInfo; WNDCLASS cls;
switch (message) { case CPL_INIT: // Is any one there ?
gcxCursor = GetSystemMetrics(SM_CXCURSOR); gcyCursor = GetSystemMetrics(SM_CYCURSOR);
/*
* Load ONE string for emergencies. */ LoadString(ghmod, IDS_CUR_NOMEM, gszNoMem, sizeof(gszNoMem) / sizeof(TCHAR));
/*
* Register a new window class to handle the cursor preview. */ cls.style = CS_GLOBALCLASS; cls.lpfnWndProc = PreviewWndProc; cls.cbClsExtra = 0; cls.cbWndExtra = 0; cls.hInstance = ghmod; cls.hIcon = NULL; cls.hCursor = NULL; cls.hbrBackground = NULL; cls.lpszMenuName = NULL; cls.lpszClassName = szPREVIEW; RegisterClass(&cls); return TRUE;
case CPL_GETCOUNT : // How many applets do you support ?
return 1;
case CPL_INQUIRE : // Fill CplInfo structure
lpCPlInfo = (LPCPLINFO)lParam;
lpCPlInfo->idIcon = CURSORSICON; lpCPlInfo->idName = IDS_NAME; lpCPlInfo->idInfo = IDS_INFO; lpCPlInfo->lData = 0; break;
case CPL_NEWINQUIRE:
lpNCPlInfo = (LPNEWCPLINFO)lParam;
lpNCPlInfo->hIcon = LoadIcon(ghmod, MAKEINTRESOURCE(CURSORSICON)); LoadString(ghmod, IDS_NAME, lpNCPlInfo->szName, sizeof(lpNCPlInfo->szName));
if (!LoadString(ghmod, IDS_INFO, lpNCPlInfo->szInfo, sizeof(lpNCPlInfo->szInfo))) lpNCPlInfo->szInfo[0] = 0;
lpNCPlInfo->dwSize = sizeof(NEWCPLINFO); lpNCPlInfo->lData = 0; lpNCPlInfo->dwHelpContext = IDH_CHILD_CURSORS; strcpy(lpNCPlInfo->szHelpFile, xszControlHlp);
return TRUE;
case CPL_DBLCLK: // You have been chosen to run
/*
* One of your applets has been double-clicked. * wParam is an index from 0 to (NUM_APPLETS-1) * lParam is the lData value associated with the applet */ DialogBox(ghmod, MAKEINTRESOURCE(DLG_CURSORS), hwnd, (DLGPROC)CursorsDlgProc); break;
case CPL_EXIT: // You must really die
case CPL_STOP: // You must die
UnregisterClass(szPREVIEW, ghmod); break;
case CPL_SELECT: // You have been selected
/*
* Sent once for each applet prior to the CPL_EXIT msg. * wParam is an index from 0 to (NUM_APPLETS-1) * lParam is the lData value associated with the applet */ break; }
return 0L; }
BOOL DllInitialize( IN PVOID hmod, IN ULONG ulReason, IN PCONTEXT pctx OPTIONAL) { UNREFERENCED_PARAMETER(pctx);
if (ulReason != DLL_PROCESS_ATTACH) return TRUE;
ghmod = hmod;
return TRUE; }
#ifdef CAIROBLD
// hacks for Cairo build environment
// 4/08/93 - ErikGav
BOOL DllEntryPoint( IN PVOID hmod, IN ULONG ulReason, IN PCONTEXT pctx OPTIONAL) { return DllInitialize(hmod,ulReason,pctx); }
void CDECL RegisterWithCommnot(void) { }
void CDECL DeRegisterWithCommnot(void) { } #endif
|