1*48a54d36SAndroid Build Coastguard Worker /* -*- Mode: C; tab-width: 4 -*- 2*48a54d36SAndroid Build Coastguard Worker * 3*48a54d36SAndroid Build Coastguard Worker * Copyright (c) 2002-2004 Apple Computer, Inc. All rights reserved. 4*48a54d36SAndroid Build Coastguard Worker * 5*48a54d36SAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 6*48a54d36SAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 7*48a54d36SAndroid Build Coastguard Worker * You may obtain a copy of the License at 8*48a54d36SAndroid Build Coastguard Worker * 9*48a54d36SAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 10*48a54d36SAndroid Build Coastguard Worker * 11*48a54d36SAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 12*48a54d36SAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 13*48a54d36SAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*48a54d36SAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 15*48a54d36SAndroid Build Coastguard Worker * limitations under the License. 16*48a54d36SAndroid Build Coastguard Worker */ 17*48a54d36SAndroid Build Coastguard Worker 18*48a54d36SAndroid Build Coastguard Worker #ifndef _ConfigPropertySheet_h 19*48a54d36SAndroid Build Coastguard Worker #define _ConfigPropertySheet_h 20*48a54d36SAndroid Build Coastguard Worker 21*48a54d36SAndroid Build Coastguard Worker #include "stdafx.h" 22*48a54d36SAndroid Build Coastguard Worker #include "ServicesPage.h" 23*48a54d36SAndroid Build Coastguard Worker #include "RegistrationPage.h" 24*48a54d36SAndroid Build Coastguard Worker #include "BrowsingPage.h" 25*48a54d36SAndroid Build Coastguard Worker 26*48a54d36SAndroid Build Coastguard Worker #include <RegNames.h> 27*48a54d36SAndroid Build Coastguard Worker #include <dns_sd.h> 28*48a54d36SAndroid Build Coastguard Worker #include <list> 29*48a54d36SAndroid Build Coastguard Worker 30*48a54d36SAndroid Build Coastguard Worker 31*48a54d36SAndroid Build Coastguard Worker //--------------------------------------------------------------------------------------------------------------------------- 32*48a54d36SAndroid Build Coastguard Worker // CConfigPropertySheet 33*48a54d36SAndroid Build Coastguard Worker //--------------------------------------------------------------------------------------------------------------------------- 34*48a54d36SAndroid Build Coastguard Worker 35*48a54d36SAndroid Build Coastguard Worker class CConfigPropertySheet : public CPropertySheet 36*48a54d36SAndroid Build Coastguard Worker { 37*48a54d36SAndroid Build Coastguard Worker public: 38*48a54d36SAndroid Build Coastguard Worker 39*48a54d36SAndroid Build Coastguard Worker CConfigPropertySheet(); 40*48a54d36SAndroid Build Coastguard Worker virtual ~CConfigPropertySheet(); 41*48a54d36SAndroid Build Coastguard Worker 42*48a54d36SAndroid Build Coastguard Worker typedef std::list<CString> StringList; 43*48a54d36SAndroid Build Coastguard Worker 44*48a54d36SAndroid Build Coastguard Worker StringList m_browseDomains; 45*48a54d36SAndroid Build Coastguard Worker 46*48a54d36SAndroid Build Coastguard Worker protected: 47*48a54d36SAndroid Build Coastguard Worker 48*48a54d36SAndroid Build Coastguard Worker CServicesPage m_firstPage; 49*48a54d36SAndroid Build Coastguard Worker CRegistrationPage m_secondPage; 50*48a54d36SAndroid Build Coastguard Worker CBrowsingPage m_thirdPage; 51*48a54d36SAndroid Build Coastguard Worker 52*48a54d36SAndroid Build Coastguard Worker //{{AFX_VIRTUAL(CConfigPropertySheet) 53*48a54d36SAndroid Build Coastguard Worker //}}AFX_VIRTUAL 54*48a54d36SAndroid Build Coastguard Worker 55*48a54d36SAndroid Build Coastguard Worker DECLARE_DYNCREATE(CConfigPropertySheet) 56*48a54d36SAndroid Build Coastguard Worker 57*48a54d36SAndroid Build Coastguard Worker //{{AFX_MSG(CConfigPropertySheet) 58*48a54d36SAndroid Build Coastguard Worker //}}AFX_MSG 59*48a54d36SAndroid Build Coastguard Worker DECLARE_MESSAGE_MAP() 60*48a54d36SAndroid Build Coastguard Worker 61*48a54d36SAndroid Build Coastguard Worker afx_msg BOOL OnInitDialog(); 62*48a54d36SAndroid Build Coastguard Worker afx_msg BOOL OnCommand( WPARAM wParam, LPARAM lParam ); 63*48a54d36SAndroid Build Coastguard Worker afx_msg LRESULT OnDataReady( WPARAM inWParam, LPARAM inLParam ); 64*48a54d36SAndroid Build Coastguard Worker afx_msg LRESULT OnRegistryChanged( WPARAM inWParam, LPARAM inLParam ); 65*48a54d36SAndroid Build Coastguard Worker void OnEndDialog(); 66*48a54d36SAndroid Build Coastguard Worker 67*48a54d36SAndroid Build Coastguard Worker private: 68*48a54d36SAndroid Build Coastguard Worker 69*48a54d36SAndroid Build Coastguard Worker OSStatus 70*48a54d36SAndroid Build Coastguard Worker SetupBrowsing(); 71*48a54d36SAndroid Build Coastguard Worker 72*48a54d36SAndroid Build Coastguard Worker OSStatus 73*48a54d36SAndroid Build Coastguard Worker TearDownBrowsing(); 74*48a54d36SAndroid Build Coastguard Worker 75*48a54d36SAndroid Build Coastguard Worker OSStatus 76*48a54d36SAndroid Build Coastguard Worker DecodeDomainName( const char * raw, CString & decoded ); 77*48a54d36SAndroid Build Coastguard Worker 78*48a54d36SAndroid Build Coastguard Worker static void DNSSD_API 79*48a54d36SAndroid Build Coastguard Worker BrowseDomainsReply 80*48a54d36SAndroid Build Coastguard Worker ( 81*48a54d36SAndroid Build Coastguard Worker DNSServiceRef sdRef, 82*48a54d36SAndroid Build Coastguard Worker DNSServiceFlags flags, 83*48a54d36SAndroid Build Coastguard Worker uint32_t interfaceIndex, 84*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType errorCode, 85*48a54d36SAndroid Build Coastguard Worker const char * replyDomain, 86*48a54d36SAndroid Build Coastguard Worker void * context 87*48a54d36SAndroid Build Coastguard Worker ); 88*48a54d36SAndroid Build Coastguard Worker 89*48a54d36SAndroid Build Coastguard Worker // This thread will watch for registry changes 90*48a54d36SAndroid Build Coastguard Worker 91*48a54d36SAndroid Build Coastguard Worker static unsigned WINAPI 92*48a54d36SAndroid Build Coastguard Worker WatchRegistry 93*48a54d36SAndroid Build Coastguard Worker ( 94*48a54d36SAndroid Build Coastguard Worker LPVOID inParam 95*48a54d36SAndroid Build Coastguard Worker ); 96*48a54d36SAndroid Build Coastguard Worker 97*48a54d36SAndroid Build Coastguard Worker HKEY m_statusKey; 98*48a54d36SAndroid Build Coastguard Worker HANDLE m_thread; 99*48a54d36SAndroid Build Coastguard Worker HANDLE m_threadExited; 100*48a54d36SAndroid Build Coastguard Worker DNSServiceRef m_browseDomainsRef; 101*48a54d36SAndroid Build Coastguard Worker CRITICAL_SECTION m_lock; 102*48a54d36SAndroid Build Coastguard Worker }; 103*48a54d36SAndroid Build Coastguard Worker 104*48a54d36SAndroid Build Coastguard Worker 105*48a54d36SAndroid Build Coastguard Worker #endif 106