13dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin/* -*- Mode: C; tab-width: 4 -*- 23dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin * 33dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin * Copyright (c) 2002-2004 Apple Computer, Inc. All rights reserved. 43dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin * 53dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin * Licensed under the Apache License, Version 2.0 (the "License"); 63dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin * you may not use this file except in compliance with the License. 73dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin * You may obtain a copy of the License at 83dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin * 93dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin * http://www.apache.org/licenses/LICENSE-2.0 103dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin * 113dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin * Unless required by applicable law or agreed to in writing, software 123dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin * distributed under the License is distributed on an "AS IS" BASIS, 133dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 143dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin * See the License for the specific language governing permissions and 153dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin * limitations under the License. 163dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin */ 173dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin 183dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin#ifndef _ConfigPropertySheet_h 193dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin#define _ConfigPropertySheet_h 203dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin 213dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin#include "stdafx.h" 223dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin#include "ServicesPage.h" 233dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin#include "RegistrationPage.h" 243dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin#include "BrowsingPage.h" 253dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin 263dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin#include <RegNames.h> 273dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin#include <dns_sd.h> 283dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin#include <list> 293dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin 303dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin 313dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin//--------------------------------------------------------------------------------------------------------------------------- 323dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin// CConfigPropertySheet 333dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin//--------------------------------------------------------------------------------------------------------------------------- 343dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin 353dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlinclass CConfigPropertySheet : public CPropertySheet 363dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin{ 373dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlinpublic: 383dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin 393dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin CConfigPropertySheet(); 403dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin virtual ~CConfigPropertySheet(); 413dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin 423dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin typedef std::list<CString> StringList; 433dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin 443dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin StringList m_browseDomains; 453dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin 463dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlinprotected: 473dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin 483dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin CServicesPage m_firstPage; 493dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin CRegistrationPage m_secondPage; 503dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin CBrowsingPage m_thirdPage; 513dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin 523dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin //{{AFX_VIRTUAL(CConfigPropertySheet) 533dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin //}}AFX_VIRTUAL 543dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin 553dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin DECLARE_DYNCREATE(CConfigPropertySheet) 563dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin 573dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin //{{AFX_MSG(CConfigPropertySheet) 583dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin //}}AFX_MSG 593dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin DECLARE_MESSAGE_MAP() 603dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin 613dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin afx_msg BOOL OnInitDialog(); 623dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin afx_msg BOOL OnCommand( WPARAM wParam, LPARAM lParam ); 633dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin afx_msg LRESULT OnDataReady( WPARAM inWParam, LPARAM inLParam ); 643dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin afx_msg LRESULT OnRegistryChanged( WPARAM inWParam, LPARAM inLParam ); 653dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin void OnEndDialog(); 663dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin 673dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlinprivate: 683dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin 693dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin OSStatus 703dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin SetupBrowsing(); 713dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin 723dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin OSStatus 733dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin TearDownBrowsing(); 743dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin 753dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin OSStatus 763dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin DecodeDomainName( const char * raw, CString & decoded ); 773dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin 783dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin static void DNSSD_API 793dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin BrowseDomainsReply 803dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin ( 813dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin DNSServiceRef sdRef, 823dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin DNSServiceFlags flags, 833dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin uint32_t interfaceIndex, 843dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin DNSServiceErrorType errorCode, 853dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin const char * replyDomain, 863dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin void * context 873dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin ); 883dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin 893dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin // This thread will watch for registry changes 903dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin 913dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin static unsigned WINAPI 923dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin WatchRegistry 933dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin ( 943dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin LPVOID inParam 953dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin ); 963dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin 973dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin HKEY m_statusKey; 983dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin HANDLE m_thread; 993dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin HANDLE m_threadExited; 1003dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin DNSServiceRef m_browseDomainsRef; 1013dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin CRITICAL_SECTION m_lock; 1023dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin}; 1033dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin 1043dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin 1053dfdc952a3e125868a0a4123e40e1f7fd868af21Casey Dahlin#endif 106