// CtrlPan.cpp // Source for CControlPanel #include "stdafx.h" #include "ctrlpan.h" // static data CControlPanel* CControlPanel::m_pThis = NULL; CControlPanel::CControlPanel() { // Set up the static object pointer m_pThis = this; } CControlPanel::~CControlPanel() { } ////////////////////////////////////////////////////////////////////////////// // Callback function (exported) // static member functions (callbacks) LONG APIENTRY CControlPanel::CPlApplet(HWND hwndCPl, UINT uMsg, LONG lParam1, LONG lParam2) { // Get a pointer to the C++ object CControlPanel* pCtrl = m_pThis; ASSERT(pCtrl); switch (uMsg) { case CPL_DBLCLK: return pCtrl->OnDblclk(hwndCPl, lParam1, lParam2); case CPL_EXIT: return pCtrl->OnExit(); case CPL_GETCOUNT: return pCtrl->OnGetCount(); case CPL_INIT: return pCtrl->OnInit(); case CPL_NEWINQUIRE: return pCtrl->OnInquire(lParam1, (NEWCPLINFO*)lParam2); case CPL_INQUIRE: return 0; // not handled case CPL_SELECT: return pCtrl->OnSelect(lParam1, lParam2); case CPL_STOP: return pCtrl->OnStop(lParam1, lParam2); default: break; } return 1; // not processed } ///////////////////////////////////////////////////////////////////////////////////////// // Default command handlers LONG CControlPanel::OnDblclk(HWND hwndCPl, UINT uAppNum, LONG lData) { // Show the dialog return 0; // OK } LONG CControlPanel::OnExit() { return 0; // OK } LONG CControlPanel::OnGetCount() { return 1; // default is support for one dialog box } LONG CControlPanel::OnInit() { return 1; // OK } LONG CControlPanel::OnInquire(UINT uAppNum, NEWCPLINFO* pInfo) { // Fill in the data pInfo->dwSize = sizeof(NEWCPLINFO); // important pInfo->dwFlags = 0; pInfo->dwHelpContext = 0; pInfo->lData = 0; pInfo->hIcon = ::LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(1)); strcpy(pInfo->szName, "Applet"); strcpy(pInfo->szInfo, "Raw Cpl Applet"); strcpy(pInfo->szHelpFile, ""); return 0; // OK (don't send CPL_INQUIRE msg) } LONG CControlPanel::OnSelect(UINT uAppNum, LONG lData) { return 1; // not handled } LONG CControlPanel::OnStop(UINT uAppNum, LONG lData) { return 1; // not handled }