/* -*- 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. */ #if !defined(AFX_CHOOSERDIALOG_H__AC258704_B307_4901_9F98_A0AC022FD8AC__INCLUDED_) #define AFX_CHOOSERDIALOG_H__AC258704_B307_4901_9F98_A0AC022FD8AC__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include #include #include "afxcmn.h" #include "Resource.h" #include "DNSServices.h" //=========================================================================================================================== // Structures //=========================================================================================================================== struct ServiceInstanceInfo { std::string name; std::string type; std::string domain; std::string ip; std::string text; std::string ifIP; std::string hostName; }; struct ServiceTypeInfo { std::string serviceType; std::string description; std::string urlScheme; }; //=========================================================================================================================== // ChooserDialog //=========================================================================================================================== class ChooserDialog : public CDialog { public: ChooserDialog(CWnd* pParent = NULL); virtual ~ChooserDialog( void ); //{{AFX_DATA(ChooserDialog) enum { IDD = IDD_CHOOSER_DIALOG }; CListCtrl mServiceList; CListCtrl mDomainList; CListCtrl mChooserList; //}}AFX_DATA // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(ChooserDialog) public: virtual BOOL PreTranslateMessage(MSG* pMsg); protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support virtual void PostNcDestroy(); //}}AFX_VIRTUAL protected: typedef std::vector < ServiceInstanceInfo > ServiceInstanceVector; typedef std::vector < ServiceTypeInfo > ServiceTypeVector; HACCEL mMenuAcceleratorTable; DNSBrowserRef mBrowser; BOOL mIsServiceBrowsing; ServiceInstanceVector mServiceInstances; ServiceTypeVector mServiceTypes; public: void PopulateServicesList( void ); void UpdateInfoDisplay( void ); void StartBrowsing( const char *inType, const char *inDomain ); void StopBrowsing( void ); protected: //{{AFX_MSG(ChooserDialog) virtual BOOL OnInitDialog(); afx_msg void OnSysCommand(UINT nID, LPARAM lParam); afx_msg void OnDomainListChanged(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnServiceListChanged(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnChooserListChanged(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnChooserListDoubleClick(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnAbout(); afx_msg void OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu); afx_msg void OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized); afx_msg void OnFileClose(); virtual void OnCancel(); afx_msg void OnExit(); afx_msg void OnClose(); afx_msg void OnNcDestroy(); //}}AFX_MSG afx_msg LONG OnDomainAdd( WPARAM inWParam, LPARAM inLParam ); afx_msg LONG OnDomainRemove( WPARAM inWParam, LPARAM inLParam ); afx_msg LONG OnServiceAdd( WPARAM inWParam, LPARAM inLParam ); afx_msg LONG OnServiceRemove( WPARAM inWParam, LPARAM inLParam ); afx_msg LONG OnResolve( WPARAM inWParam, LPARAM inLParam ); DECLARE_MESSAGE_MAP() }; //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line. #endif // !defined(AFX_CHOOSERDIALOG_H__AC258704_B307_4901_9F98_A0AC022FD8AC__INCLUDED_)