diff options
Diffstat (limited to 'mDNSResponder/mDNSWindows/ControlPanel/ConfigPropertySheet.h')
-rwxr-xr-x | mDNSResponder/mDNSWindows/ControlPanel/ConfigPropertySheet.h | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/mDNSResponder/mDNSWindows/ControlPanel/ConfigPropertySheet.h b/mDNSResponder/mDNSWindows/ControlPanel/ConfigPropertySheet.h new file mode 100755 index 00000000..9e4fda81 --- /dev/null +++ b/mDNSResponder/mDNSWindows/ControlPanel/ConfigPropertySheet.h @@ -0,0 +1,105 @@ +/* -*- 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. + */ + +#ifndef _ConfigPropertySheet_h +#define _ConfigPropertySheet_h + +#include "stdafx.h" +#include "ServicesPage.h" +#include "RegistrationPage.h" +#include "BrowsingPage.h" + +#include <RegNames.h> +#include <dns_sd.h> +#include <list> + + +//--------------------------------------------------------------------------------------------------------------------------- +// CConfigPropertySheet +//--------------------------------------------------------------------------------------------------------------------------- + +class CConfigPropertySheet : public CPropertySheet +{ +public: + + CConfigPropertySheet(); + virtual ~CConfigPropertySheet(); + + typedef std::list<CString> StringList; + + StringList m_browseDomains; + +protected: + + CServicesPage m_firstPage; + CRegistrationPage m_secondPage; + CBrowsingPage m_thirdPage; + + //{{AFX_VIRTUAL(CConfigPropertySheet) + //}}AFX_VIRTUAL + + DECLARE_DYNCREATE(CConfigPropertySheet) + + //{{AFX_MSG(CConfigPropertySheet) + //}}AFX_MSG + DECLARE_MESSAGE_MAP() + + afx_msg BOOL OnInitDialog(); + afx_msg BOOL OnCommand( WPARAM wParam, LPARAM lParam ); + afx_msg LRESULT OnDataReady( WPARAM inWParam, LPARAM inLParam ); + afx_msg LRESULT OnRegistryChanged( WPARAM inWParam, LPARAM inLParam ); + void OnEndDialog(); + +private: + + OSStatus + SetupBrowsing(); + + OSStatus + TearDownBrowsing(); + + OSStatus + DecodeDomainName( const char * raw, CString & decoded ); + + static void DNSSD_API + BrowseDomainsReply + ( + DNSServiceRef sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + DNSServiceErrorType errorCode, + const char * replyDomain, + void * context + ); + + // This thread will watch for registry changes + + static unsigned WINAPI + WatchRegistry + ( + LPVOID inParam + ); + + HKEY m_statusKey; + HANDLE m_thread; + HANDLE m_threadExited; + DNSServiceRef m_browseDomainsRef; + CRITICAL_SECTION m_lock; +}; + + +#endif |