+++ /dev/null
-/* -*- Mode: C; tab-width: 4 -*-
- *
- * Copyright (c) 2002-2004 Apple Computer, Inc. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#include "ControlPanel.h"
-#include "ConfigDialog.h"
-#include "ConfigPropertySheet.h"
-#include "resource.h"
-
-#include <DebugServices.h>
-
-
-#ifdef _DEBUG
-#define new DEBUG_NEW
-#undef THIS_FILE
-static char THIS_FILE[] = __FILE__;
-#endif
-
-
-static CCPApp theApp;
-
-
-//---------------------------------------------------------------------------------------------------------------------------
-// GetControlPanelApp
-//---------------------------------------------------------------------------------------------------------------------------
-
-CCPApp*
-GetControlPanelApp()
-{
- CCPApp * pApp = (CCPApp*) AfxGetApp();
-
- check( pApp );
- check( pApp->IsKindOf( RUNTIME_CLASS( CCPApp ) ) );
-
- return pApp;
-}
-
-
-//---------------------------------------------------------------------------------------------------------------------------
-// CPlApplet
-//---------------------------------------------------------------------------------------------------------------------------
-
-LONG APIENTRY
-CPlApplet(HWND hWndCPl, UINT uMsg, LONG lParam1, LONG lParam2)
-{
- AFX_MANAGE_STATE(AfxGetStaticModuleState());
-
- CCPApp * pApp = GetControlPanelApp();
-
- return ( LONG ) pApp->OnCplMsg(hWndCPl, uMsg, lParam1, lParam2);
-}
-
-
-IMPLEMENT_DYNAMIC(CCPApplet, CCmdTarget);
-
-
-//---------------------------------------------------------------------------------------------------------------------------
-// CCPApplet::CCPApplet
-//---------------------------------------------------------------------------------------------------------------------------
-
-CCPApplet::CCPApplet(UINT resourceId, UINT descId, CRuntimeClass * uiClass)
-:
- m_resourceId(resourceId),
- m_descId(descId),
- m_uiClass(uiClass),
- m_pageNumber(0)
-{
- check( uiClass );
- check( uiClass->IsDerivedFrom( RUNTIME_CLASS( CDialog ) ) ||
- uiClass->IsDerivedFrom( RUNTIME_CLASS( CPropertySheet ) ) );
-
- m_name.LoadString(resourceId);
-}
-
-
-//---------------------------------------------------------------------------------------------------------------------------
-// CCPApplet::~CCPApplet
-//---------------------------------------------------------------------------------------------------------------------------
-
-CCPApplet::~CCPApplet()
-{
-}
-
-
-//---------------------------------------------------------------------------------------------------------------------------
-// CCPApplet::OnStartParms
-//---------------------------------------------------------------------------------------------------------------------------
-
-LRESULT
-CCPApplet::OnStartParms(CWnd * pParentWnd, LPCTSTR extra)
-{
- DEBUG_UNUSED( pParentWnd );
-
- if ( extra )
- {
- m_pageNumber = ::_ttoi( extra ) - 1;
- }
-
- return 0;
-}
-
-
-//---------------------------------------------------------------------------------------------------------------------------
-// CCPApplet::OnRun
-//---------------------------------------------------------------------------------------------------------------------------
-
-LRESULT
-CCPApplet::OnRun(CWnd* pParentWnd)
-{
- LRESULT lResult = 1;
- CWnd * pWnd;
-
- InitCommonControls();
-
- pWnd = (CWnd*) m_uiClass->CreateObject();
-
- if ( pWnd )
- {
- lResult = ERROR_SUCCESS;
-
- if ( pWnd->IsKindOf( RUNTIME_CLASS( CPropertySheet ) ) )
- {
- CPropertySheet * pSheet = (CPropertySheet*) pWnd;
-
- pSheet->Construct(m_name, pParentWnd, m_pageNumber);
-
- pSheet->DoModal();
- }
- else
- {
- check( pWnd->IsKindOf( RUNTIME_CLASS( CDialog ) ) );
-
- CDialog * pDialog = (CDialog*) pWnd;
-
- pDialog->DoModal();
- }
-
- delete pWnd;
- }
-
- return lResult;
-}
-
-
-//---------------------------------------------------------------------------------------------------------------------------
-// CCPApplet::OnInquire
-//---------------------------------------------------------------------------------------------------------------------------
-
-LRESULT
-CCPApplet::OnInquire(CPLINFO* pInfo)
-{
- pInfo->idIcon = m_resourceId;
- pInfo->idName = m_resourceId;
- pInfo->idInfo = m_descId;
- pInfo->lData = reinterpret_cast<LONG>(this);
-
- return 0;
-}
-
-
-//---------------------------------------------------------------------------------------------------------------------------
-// CCPApplet::OnNewInquire
-//---------------------------------------------------------------------------------------------------------------------------
-
-LRESULT
-CCPApplet::OnNewInquire(NEWCPLINFO* pInfo)
-{
- DEBUG_UNUSED( pInfo );
-
- return 1;
-}
-
-
-//---------------------------------------------------------------------------------------------------------------------------
-// CCPApplet::OnSelect
-//---------------------------------------------------------------------------------------------------------------------------
-
-LRESULT
-CCPApplet::OnSelect()
-{
- return 0;
-}
-
-
-//---------------------------------------------------------------------------------------------------------------------------
-// CCPApplet::OnStop
-//---------------------------------------------------------------------------------------------------------------------------
-
-LRESULT
-CCPApplet::OnStop()
-{
- return 0;
-}
-
-
-IMPLEMENT_DYNAMIC(CCPApp, CWinApp);
-
-//---------------------------------------------------------------------------------------------------------------------------
-// CCPApp::CCPApp
-//---------------------------------------------------------------------------------------------------------------------------
-
-CCPApp::CCPApp()
-{
- debug_initialize( kDebugOutputTypeWindowsEventLog, "DNS-SD Control Panel", GetModuleHandle( NULL ) );
- debug_set_property( kDebugPropertyTagPrintLevel, kDebugLevelInfo );
-}
-
-
-//---------------------------------------------------------------------------------------------------------------------------
-// CCPApp::~CCPApp
-//---------------------------------------------------------------------------------------------------------------------------
-
-CCPApp::~CCPApp()
-{
- while ( !m_applets.IsEmpty() )
- {
- delete m_applets.RemoveHead();
- }
-}
-
-
-//---------------------------------------------------------------------------------------------------------------------------
-// CCPApp::AddApplet
-//---------------------------------------------------------------------------------------------------------------------------
-
-void
-CCPApp::AddApplet( CCPApplet * applet )
-{
- check( applet );
-
- m_applets.AddTail( applet );
-}
-
-
-//---------------------------------------------------------------------------------------------------------------------------
-// CCPApp::OnInit
-//---------------------------------------------------------------------------------------------------------------------------
-
-LRESULT
-CCPApp::OnInit()
-{
- CCPApplet * applet;
-
- try
- {
- applet = new CCPApplet( IDR_APPLET, IDS_APPLET_DESCRIPTION, RUNTIME_CLASS( CConfigPropertySheet ) );
- }
- catch (...)
- {
- applet = NULL;
- }
-
- require_action( applet, exit, kNoMemoryErr );
-
- AddApplet( applet );
-
-exit:
-
- return m_applets.GetCount();
-}
-
-
-//---------------------------------------------------------------------------------------------------------------------------
-// CCPApp::OnExit
-//---------------------------------------------------------------------------------------------------------------------------
-
-LRESULT
-CCPApp::OnExit()
-{
- return 1;
-}
-
-
-//---------------------------------------------------------------------------------------------------------------------------
-// CCPApp::OnCplMsg
-//---------------------------------------------------------------------------------------------------------------------------
-
-LRESULT
-CCPApp::OnCplMsg(HWND hWndCPl, UINT uMsg, LPARAM lParam1, LPARAM lParam2)
-{
- LRESULT lResult = 1;
-
- switch ( uMsg )
- {
- case CPL_INIT:
- {
- lResult = OnInit();
- }
- break;
-
- case CPL_EXIT:
- {
- lResult = OnExit();
- }
- break;
-
- case CPL_GETCOUNT:
- {
- lResult = m_applets.GetCount();
- }
- break;
-
- default:
- {
- POSITION pos = m_applets.FindIndex( lParam1 );
- check( pos );
-
- CCPApplet * applet = m_applets.GetAt( pos );
- check( applet );
-
- switch (uMsg)
- {
- case CPL_INQUIRE:
- {
- LPCPLINFO pInfo = reinterpret_cast<LPCPLINFO>(lParam2);
- lResult = applet->OnInquire(pInfo);
- }
- break;
-
- case CPL_NEWINQUIRE:
- {
- LPNEWCPLINFO pInfo = reinterpret_cast<LPNEWCPLINFO>(lParam2);
- lResult = applet->OnNewInquire(pInfo);
- }
- break;
-
- case CPL_STARTWPARMS:
- {
- CWnd * pParentWnd = CWnd::FromHandle(hWndCPl);
- LPCTSTR lpszExtra = reinterpret_cast<LPCTSTR>(lParam2);
- lResult = applet->OnStartParms(pParentWnd, lpszExtra);
- }
- break;
-
- case CPL_DBLCLK:
- {
- CWnd* pParentWnd = CWnd::FromHandle(hWndCPl);
- lResult = applet->OnRun(pParentWnd);
- }
- break;
-
- case CPL_SELECT:
- {
- lResult = applet->OnSelect();
- }
- break;
-
- case CPL_STOP:
- {
- lResult = applet->OnStop();
- }
- break;
-
- default:
- {
- // TRACE(_T("Warning, Received an unknown control panel message:%d\n"), uMsg);
- lResult = 1;
- }
- break;
- }
- }
- break;
- }
-
- return lResult;
-}