]> git.saurik.com Git - apple/mdnsresponder.git/blob - mDNSWindows/ControlPanel/ConfigPropertySheet.h
mDNSResponder-878.270.2.tar.gz
[apple/mdnsresponder.git] / mDNSWindows / ControlPanel / ConfigPropertySheet.h
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 #ifndef _ConfigPropertySheet_h
19 #define _ConfigPropertySheet_h
20
21 #include "stdafx.h"
22 #include "ServicesPage.h"
23 #include "RegistrationPage.h"
24 #include "BrowsingPage.h"
25
26 #include <RegNames.h>
27 #include <dns_sd.h>
28 #include <list>
29
30
31 //---------------------------------------------------------------------------------------------------------------------------
32 // CConfigPropertySheet
33 //---------------------------------------------------------------------------------------------------------------------------
34
35 class CConfigPropertySheet : public CPropertySheet
36 {
37 public:
38
39 CConfigPropertySheet();
40 virtual ~CConfigPropertySheet();
41
42 typedef std::list<CString> StringList;
43
44 StringList m_browseDomains;
45
46 protected:
47
48 CServicesPage m_firstPage;
49 CRegistrationPage m_secondPage;
50 CBrowsingPage m_thirdPage;
51
52 //{{AFX_VIRTUAL(CConfigPropertySheet)
53 //}}AFX_VIRTUAL
54
55 DECLARE_DYNCREATE(CConfigPropertySheet)
56
57 //{{AFX_MSG(CConfigPropertySheet)
58 //}}AFX_MSG
59 DECLARE_MESSAGE_MAP()
60
61 afx_msg BOOL OnInitDialog();
62 afx_msg BOOL OnCommand( WPARAM wParam, LPARAM lParam );
63 afx_msg LRESULT OnDataReady( WPARAM inWParam, LPARAM inLParam );
64 afx_msg LRESULT OnRegistryChanged( WPARAM inWParam, LPARAM inLParam );
65 void OnEndDialog();
66
67 private:
68
69 OSStatus
70 SetupBrowsing();
71
72 OSStatus
73 TearDownBrowsing();
74
75 OSStatus
76 DecodeDomainName( const char * raw, CString & decoded );
77
78 static void DNSSD_API
79 BrowseDomainsReply
80 (
81 DNSServiceRef sdRef,
82 DNSServiceFlags flags,
83 uint32_t interfaceIndex,
84 DNSServiceErrorType errorCode,
85 const char * replyDomain,
86 void * context
87 );
88
89 // This thread will watch for registry changes
90
91 static unsigned WINAPI
92 WatchRegistry
93 (
94 LPVOID inParam
95 );
96
97 HKEY m_statusKey;
98 HANDLE m_thread;
99 HANDLE m_threadExited;
100 DNSServiceRef m_browseDomainsRef;
101 CRITICAL_SECTION m_lock;
102 };
103
104
105 #endif