1/* -*- Mode: C; tab-width: 4 -*- 2 * 3 * Copyright (c) 2002-2004 Apple Computer, Inc. All rights reserved. 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 18#if !defined(AFX_CHOOSERDIALOG_H__AC258704_B307_4901_9F98_A0AC022FD8AC__INCLUDED_) 19#define AFX_CHOOSERDIALOG_H__AC258704_B307_4901_9F98_A0AC022FD8AC__INCLUDED_ 20 21#if _MSC_VER > 1000 22#pragma once 23#endif // _MSC_VER > 1000 24 25#include <string> 26#include <vector> 27 28#include "afxcmn.h" 29 30#include "Resource.h" 31 32#include "DNSServices.h" 33 34//=========================================================================================================================== 35// Structures 36//=========================================================================================================================== 37 38struct ServiceInstanceInfo 39{ 40 std::string name; 41 std::string type; 42 std::string domain; 43 std::string ip; 44 std::string text; 45 std::string ifIP; 46 std::string hostName; 47}; 48 49struct ServiceTypeInfo 50{ 51 std::string serviceType; 52 std::string description; 53 std::string urlScheme; 54}; 55 56//=========================================================================================================================== 57// ChooserDialog 58//=========================================================================================================================== 59 60class ChooserDialog : public CDialog 61{ 62 public: 63 64 ChooserDialog(CWnd* pParent = NULL); 65 virtual ~ChooserDialog( void ); 66 67 //{{AFX_DATA(ChooserDialog) 68 enum { IDD = IDD_CHOOSER_DIALOG }; 69 CListCtrl mServiceList; 70 CListCtrl mDomainList; 71 CListCtrl mChooserList; 72 //}}AFX_DATA 73 74 // ClassWizard generated virtual function overrides 75 //{{AFX_VIRTUAL(ChooserDialog) 76 public: 77 virtual BOOL PreTranslateMessage(MSG* pMsg); 78 protected: 79 virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support 80 virtual void PostNcDestroy(); 81 //}}AFX_VIRTUAL 82 83 protected: 84 85 typedef std::vector < ServiceInstanceInfo > ServiceInstanceVector; 86 typedef std::vector < ServiceTypeInfo > ServiceTypeVector; 87 88 HACCEL mMenuAcceleratorTable; 89 DNSBrowserRef mBrowser; 90 BOOL mIsServiceBrowsing; 91 ServiceInstanceVector mServiceInstances; 92 ServiceTypeVector mServiceTypes; 93 94 public: 95 96 void PopulateServicesList( void ); 97 void UpdateInfoDisplay( void ); 98 99 void StartBrowsing( const char *inType, const char *inDomain ); 100 void StopBrowsing( void ); 101 102 protected: 103 104 //{{AFX_MSG(ChooserDialog) 105 virtual BOOL OnInitDialog(); 106 afx_msg void OnSysCommand(UINT nID, LPARAM lParam); 107 afx_msg void OnDomainListChanged(NMHDR* pNMHDR, LRESULT* pResult); 108 afx_msg void OnServiceListChanged(NMHDR* pNMHDR, LRESULT* pResult); 109 afx_msg void OnChooserListChanged(NMHDR* pNMHDR, LRESULT* pResult); 110 afx_msg void OnChooserListDoubleClick(NMHDR* pNMHDR, LRESULT* pResult); 111 afx_msg void OnAbout(); 112 afx_msg void OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu); 113 afx_msg void OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized); 114 afx_msg void OnFileClose(); 115 virtual void OnCancel(); 116 afx_msg void OnExit(); 117 afx_msg void OnClose(); 118 afx_msg void OnNcDestroy(); 119 //}}AFX_MSG 120 afx_msg LONG OnDomainAdd( WPARAM inWParam, LPARAM inLParam ); 121 afx_msg LONG OnDomainRemove( WPARAM inWParam, LPARAM inLParam ); 122 afx_msg LONG OnServiceAdd( WPARAM inWParam, LPARAM inLParam ); 123 afx_msg LONG OnServiceRemove( WPARAM inWParam, LPARAM inLParam ); 124 afx_msg LONG OnResolve( WPARAM inWParam, LPARAM inLParam ); 125 DECLARE_MESSAGE_MAP() 126}; 127 128//{{AFX_INSERT_LOCATION}} 129// Microsoft Visual C++ will insert additional declarations immediately before the previous line. 130 131#endif // !defined(AFX_CHOOSERDIALOG_H__AC258704_B307_4901_9F98_A0AC022FD8AC__INCLUDED_) 132